素数筛

Posted yang-ra-noi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了素数筛相关的知识,希望对你有一定的参考价值。

对于一些题,我们需要去枚举n以下的素数,
但是有时可能不止一个数需要这样做,所以下面介绍一些筛出n以下的素数的方法
一.暴力求解
直接枚举每一个(iin[2,n]),判断其是否是素数,然后加入数组
判断素数的话枚举(jin[2,sqrt i]),判断是否i能整除j,若都不能,则i为素数
代码比较简单,时间复杂度最高,为(O(nsqrt n))

for(int i=2;i<=n;i++){
	bool f=true;;
	for(int j=2;j<=sqrt(i);j++)if(i%j==0)f=false;
	if(f)cout<<i<<endl;
}

输出的即为n以内的所有素数






以上是关于素数筛的主要内容,如果未能解决你的问题,请参考以下文章

浅谈线性素数筛

代码模板——素数筛法

单纯的线性筛素数

线性筛素数(欧拉筛)

线性筛素数(欧拉筛)

线性筛素数(欧拉筛)