include <stdio.h> int fun(int n) { int i,j, count=0; printf("\nThe prime number between 3 to %d\n", n); for (i=3; i<=n; i++) { /**********found**********/ for (j=2; j<i; j++) /**********found**********/ if (i%j == 0) break; /**********found**********/ if (j>=i) { count++; printf( count%15? "%5d":"\n%5d",i); } } return count; } main() { int n=20, r; r = fun(n); printf("\nThe number of prime is : %d\n", r); }
这个最后j>=i是为什么 不应该是j=i么因为当i是素数的时候,到i的前一个数都没法整除所以j=i
回复 小青年:
#include <stdio.h>
int fun(int n)
{ int i,j, count=0;
printf("\nThe prime number between 3 to %d\n", n);
for (i=3; i<=n; i++)
{
/**********found**********/
for (j=2; j<i; j++)
/**********found**********/
if (i%j == 0) break;
/**********found**********/
if (j==i)
{
count++;
printf( count%15? "%5d":"\n%5d",i);
}
} return count;
}
main()
{ int n=20, r;
r = fun(n);
printf("\nThe number of prime is : %d\n", r);
}
不乱说,如果是题目这个的话,我修改了之后都能运行,且答案是一样的
回复 嘿嘿大人:
#include <stdio.h>
int fun(int n)
{
int i,j, count=0;
printf("\nThe prime number between 3 to %d\n", n);
for (i=3; i<=n; i++)
{ /**********found**********/
for (j=2; j<i; j++)
/**********found**********/
if (i%j == 0) break;
/**********found**********/
if (j=i)
{ count++;
printf( count%15? "%5d":"\n%5d",i); }
}
return count; }
main()
{ int n=20, r; r = fun(n); printf("\nThe number of prime is : %d\n", r); }