关于筛法

以前总以为超过500万数据线性筛法要比nlogn筛法跑的快,用5亿以内数据测试了下,加了优化的nlogn筛法总是要比线性筛法快的,对于用位压省内存来说,nlogn的筛法优势尤其明显,以后统一用如下筛法了。


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;
		}
}


你可能感兴趣的:(关于筛法)