读书人

关于素数小疑点

发布时间: 2012-02-29 16:44:11 作者: rapoo

关于素数小问题

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就行了
}
[解决办法]
楼上正解
[解决办法]
探讨
#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)
{
p……

读书人网 >C语言

热点推荐