问题:
判断101-200之间有多少个素数,并输出所有素数。
问题分析:
求素数可以根据以下算法,设这个数为m,将这个数分别除以2-√m,若整除,则说明不是素数,否则,则表明该数是素数。
代码
#include<math.h>
#include<stdio.h>
int main()
{
int k=0;//用来记录该数的平方根
int h=0;//用来记录该个数
int leap=1;//用来怕判断是否能整除
for(int m=101;m<=200;m++)
{
k=sqrt(m+1);
for(int i=2;i<=k;i++)
if(m%i==0) {leap=0;break;}
if(leap){
printf("%d ",m);
h++;
if(h%10==0) printf("\n");
}
leap=1;
}
printf("\nthe total is %d",h);
return 0;
}
运行结果
总结:
感觉自己思维真的很差,一个求素数的问题都想好久了,对这个算法的理论也很难证明。