计算1~100之间的素数,为什么for循环里面的if条件好像没有判断作用?
#include <stdio.h>#include <stdlib.h>
#include<math.h>
int main(void)
{
int n = 1, i;
for (i = 2; n%i != 0, n <= 100; n++)
{
i++;
if (i > sqrt(n));
printf("%d是素数\n", n);
}
return 0;
}
#include <stdio.h> #include <stdlib.h> #include<math.h> int main(void) { int n = 1, i; for (i = 2; n%i != 0, n <= 100; n++) { i++; if (i > sqrt(n)); //--->这里的分号,是多余的,具体原因请在论坛旧帖里翻一翻,不少。 printf("%d是素数\n", n); } return 0; }
#include <stdio.h> #include <stdlib.h> #include<math.h> int main(void) { int i,j; for (i = 2; n <= 100; i++) { for(j=2;j<=sqrt((double)i);j++) { if(i%j==0) { break; } } if(j>sqrt((double)i)) printf("%d是素数\n", i); } return 0; }
[此贴子已经被作者于2016-4-7 22:40编辑过]
#include #include #include int main(void) { int n; int j; scanf("%d",&n); for(j=2;j<=sqrt((double)n);j++) { if(n%j==0) { break; } } if(j>sqrt((double)n)) printf("%d是素数\n", n); else printf("%d可以被%d整除\n",n,j); return 0; }