筛法求素数就是先认定所有的数是素数(int a[10000]={0}),再通过一些方法把合数踢掉(a[i’]=1)
一般筛法的思想是:从2开始找,素数的倍数(1倍、2
倍、3
倍,,,)
为合数。它的缺点是会重复筛除一些合数 ( 像筛除3*5之后又会筛除5*3,这样会使复杂度很大)
快速线性筛法的特点就是不会重复筛除一个合数。它的原理是
前提是:一个合数
i=p1*p2*…*pn, pi都是素数(2<=i<=n), pi<=pj ( i<=j )
p1是最小的系数。这样每一个合数就有一个确定的表示方法,不会重复。(像12=2*2*3)
版权声明:本文为nuanxin_520原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。