筛选法了解吗?
首先承认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