一道C语言编程问题

来源:百度知道 编辑:UC知道 时间:2024/05/18 02:36:10
题目:判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
则表明此数不是素数,反之是素数。
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);
}
各位大哥,小弟是新手,还望各位能帮忙解释一下这个程序啊,谢谢!!

判断素数的方法明白的话,代码也不难
#include "math.h"
main()
{
int m,i,k,h=0,leap=1; /*定义变量*/
printf("\n");
for(m=101;m<=200;m++)
{ k=sqrt(m+1); /*找到中间的那个数(比如25,只要找到5,然

后让25/(1,2,3,4,5)如果余数为0,就不是素数 OK?)*/
for(i=2;i<=k;i++)
if(m%i==0) /*取模,判断余数是否为0*/
{leap=0;break;} /*如果为0,用leap标记*/
if(leap) {printf("%-4d",m);h++; /*打印取模后非零的数(素数)*/
if(h%10==0) /*十个数一行,输出*/
printf("\n");
}
leap=1;
}
printf("\nThe total is %d",h);
}

应该明白了吧,还有问题,发信息 ^_^