关于C语言一个输出素数的问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 05:11:28
将100-200之间的所有素数打印出来
如这样编写
#include "math.h"
main()
{
int m,i;
for(m=101;m<=200;m+2)
for(i=2;i<=m;i++)
if(m%i!=0)
printf("%-4d",m);
getch();
}
为何无限输出101...
迷惑
是了..
这个没注意
但为何输出的时候
仍旧多个101 多个103..
再有
当for(m=101;m<=200;m++)的时候
为何会输出200以及大量不是素数的偶数?
疑问~~
比较好的编译程序我也看过
但不知道和自己编写的区别在哪..
请教~~
是循环嵌套的原因么?

if(m%i!=0)
printf("%-4d",m);
素数是只能被自己和1整除的数,而你写的条件是只要不被1整除就是素数!

for(m=101;m<=200;m+2)
是m+=2

#include "math.h"
main()
{
int m,i,k,h=0,leap=1;
printf("\n");
for(m=101;m<=200;m++)
{ k=sqrt(m+1);
for(i=2;i<=k;i++)
if(m%i==0)
{leap=0;break;}
if(leap) {printf("%-4d",m);h++;
if(h%10==0)
printf("\n");
}
leap=1;
}
printf("\nThe total is %d",h);
}

for(m=101;m<=200;m+2) //error
改为
for(m=101;m<=200;m=m+2)//ok!