关于素数小问题
- C/C++ code
//题目:判断101-200之间有多少个素数,并输出所有素数#include<stdio.h>#include<math.h>void main(){ int m,k,flag=1,i,h=0; for(m=101;m<=200;m=m+2) { k=(int)sqrt(m); for(i=2;i<=k;i++) { if(m%i==0) { flag=0; break; } } if(flag==1) { printf(" %-3d",m); h++; if(h%10==0) printf("\n"); } flag=1; } printf("%d",h);}
为什么最后一个输出是:
101 103·········149
151···········19921
这个19921我就不淡定了,找不出来啊,大哥们求教了啊。。
[解决办法]
#include<stdio.h>
#include<math.h>
void main()
{
int m,k,flag=1,i,h=0;
for(m=101;m<=200;m=m+2)
{
k=(int)sqrt(m);
for(i=2;i<=k;i++)
{
if(m%i==0)
{
flag=0;
break;
}
}
if(flag==1)
{
printf(" %-3d",m);
h++;
if(h%10==0)
printf("\n");
}
flag=1;
}
printf("\n h=%d",h);//总共有21个质数,最后一个是199,而h=21,两个弄一块儿了,加上个\n就行了
}
[解决办法]
楼上正解
[解决办法]