题目:判断101-200之间有多少个素数,并输出所有素数。
分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
程序如下:
#include <stdio.h>
#include <stdlib.h>
#include <math.h> //因为用到根号 →→ sqrt(),故需要<math.h>头文件
int main()
{
int i,j;
int k; //k=sqrt(这个数)
int leap; //leap=0/leap=1相当于一个开关
int n=0; //记录i的个数
for(i=101;i<201;i++)
{
k=sqrt(i);
for(j=2;j<=k;j++) /*内循环控制能否整除,若能,则不再除下去,直接退出内循环,并且用开关控制是否打印i,即leap=0。若不能整除,则leap=1,就打印i*/
{
if(i%j==0)
{
leap=0;
break;
}
leap=1;
}
if (leap)
{
printf("%-4d ",i);
n++;
if(n%3==0) printf("\n");
}
}
printf("There are %d prime Numbers",n);
return 0;
}
有个疑问?为什么不把 if(n%3==0) printf(“\n”); 放到if(leap){}中输出格式就会特别怪!!!