关于筛法

来源:互联网 发布:淘宝舞帝商城 编辑:程序博客网 时间:2024/06/06 01:10

以前总以为超过500万数据线性筛法要比nlogn筛法跑的快,用5亿以内数据测试了下,加了优化的nlogn筛法总是要比线性筛法快的,对于用位压省内存来说,nlogn的筛法优势尤其明显,以后统一用如下筛法了。(这里仅仅是把质数存到prim中,isnp并不能用来判定)


int prim[MAXN/10], npr;bool isnp[MAXN+1];void init(){    npr = 0;prim[npr++] = 2;isnp[2] = false;    for(int i = 3; i <= MAXN; i += 2)if(!isnp[i]){prim[npr++] = i;if((LL)i*i > MAXN) continue;for(int j = i*i; j <= MAXN; j += (i << 1))isnp[j] = true;}}


1 0