什么网站可以做海报赚钱,网站主体备案信息查询,免费APP 微信 网站平台,怎样做网站的子网匿名用户1级2016-09-04 回答基本思想用筛法求素数的基本思想是#xff1a;把从1开始的、某一范围内的正整数从小到大顺序排列#xff0c; 1不是素数#xff0c;首先把它筛掉。剩下的数中选择最小的数是素数#xff0c;然后去掉它的倍数。依次类推#xff0c;直到筛子为空时…匿名用户1级2016-09-04 回答基本思想用筛法求素数的基本思想是把从1开始的、某一范围内的正整数从小到大顺序排列 1不是素数首先把它筛掉。剩下的数中选择最小的数是素数然后去掉它的倍数。依次类推直到筛子为空时结束。如有 1 2 3 4 5 6 7 8 9 1011 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 301不是素数去掉。剩下的数中2最小是素数去掉2的倍数余下的数是3 5 7 9 11 13 15 17 19 21 23 25 27 29剩下的数中3最小是素数去掉3的倍数如此下去直到所有的数都被筛完求出的素数为 2 3 5 7 11 13 17 19 23 29C语言实现1、算法一令A为素数则A*N(N1;N为自然数)都不是素数。#define range 2000 bool IsPrime[range1];//set函数确定i是否为素数结果储存在IsPrime[i]中此函数在DEV C中测试通过 void set(bool IsPrime[]) { int i,j;for(i0;irange;i) IsPrime[i]true;IsPrime[0]IsPrime[1]false; for(i2;irange;i) {if(IsPrime[i]) {for(j2*i;jrange;ji) IsPrime[j]false; } } } 2、说明解决这个问题的诀窍是如何安排删除的次序使得每一个非质数都只被删除一次。 中学时学过一个因式分解定理他说任何一个非质(合)数都可以分解成质数的连乘积。例如164^2182 * 3^26914882^5 * 3^2 * 7^4等。如果把因式分解中最小质数写在最左边有164^2182*9,6914882^5 * 21609,换句话说把合数N写成Np^k * q此时q当然是大于p的因为p是因式分解中最小的质数。由于因式分解的唯一性任何一个合数N写成Np^k * q;的方式也是唯一的。 由于qp的关系因此在删除非质数时如果已知p是质数可以先删除P^2,p^3,p^4,... 再删除pq,p^2*q,p^3*q,...,(q是比p大而没有被删除的数)一直到pqN为止。因为每个非质数都只被删除一次可想而知这个程序的速度一定相当快。依据Gries与Misra的文章线性的时间也就是与N成正比的时间就足够了(此时要找出2N的质数)。