求200以内的素数(质数)表!有没有什么规律?
问题描述:
求200以内的素数(质数)表!有没有什么规律?
求200以内的素数(质数)表!
有没有什么规律?
答
筛选法了解吗?
首先承认2是质数,然后从这个2开始,依次剔除前面选出的质数倍数,至剔完N/2的倍数为止.剩下的都是质数.
比如,求20以内的.
首先剔除所有2的倍数4,6,8,10,12,14,16,18,20剩下:
2,3,5,7,9,11,13,15,17,19
然后剔除3的倍数9,15,剩下:
2,3,5,7,11,13,17,19.
剩下的数当中小于10(即20/2)的,而且还没进行过倍数剔除的只有5和7了,但这里边已经没有5的倍数和7的倍数,那么它们就都是有质数了.
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数.
2.程序源代码:
#include "math.h"
main()
{
int m,i,k,h=0,leap=1;
printf("\n");
for(m=1;m{ k=sqrt(m+1);
for(i=2;iif(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);
}