线性筛法求质数

Posted arbor-one

tags:

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

const int N=10010;
int prime[N];
bool v[N];
void get_primes(int n)
{
memset(v,0,sizeof(v));
m=0;
for(int i=2;i<n;i++)//循环遍历2~n的质数
{
if(!v[i]){v[i]=i,prime[m++]=i;}//如果没有访问过,就是质数
for(int j=0;iprime[j]<=n;j++)//把质数的倍数都变为访问了的
{
v[i
prime[j]]=true;
if(i*prime[j]==0)break;//这个质数的倍数超过了n就退出
}
}
for(int i=1;i<=m;i++)
printf("%d %d",prime[i]);//输出
}



















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

电影里的代码之《机械姬》:筛法求质数

数学基础素数线性筛法--欧拉筛法模板普通筛法的优化

利用筛法求质数

ACwing(基础)--- 筛法求质数

蓝桥杯中常用的数学算法

蓝桥杯中常用的数学算法