这个问题没有看明白,请教大家:
求100以内的素数
程序如下:
#include "stdio.h" #include "math.h" #define N 101 main() { int i,j,line,a[N]; for(i=2;i<N;i++) a[i]=i; for(i=2;i<sqrt(N);i++) for(j=i+1;j<N;j++) { if(a[i]!=0&&a[j]!=0) if(a[j]%a[i]==0) a[j]=0; } printf("\n"); for(i=2,line=0;i<N;i++) { if(a[i]!=0) { printf("%5d",a[i]); line++; } if(line==0) { printf("\n"); line=0;} } }
呵呵~~~,首先声明小弟对数学学的不是很好,什么为素数?为什么用宏定义来,程序中可以直接用101吗??
----------------解决方案--------------------------------------------------------
晕, 偶没看过~
----------------解决方案--------------------------------------------------------
判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
改成101也行!习惯问题吧!
----------------解决方案--------------------------------------------------------
宏定义只不过图个方便,如果有人让你求200、400、600或者3000以内的素数的时候你只要将宏定义中的N值该为200、400、600或者3000就可以了。
----------------解决方案--------------------------------------------------------