单纯的线性筛素数

Posted wang者归来

tags:

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

很多地方要用到素数,而能很快的写出代码筛出素数是很不错的我就单独写一个线性筛的代码和证明。

 

#include<iostream>
#incldue<cstdio>
#include<queue>
#include<algorihtm>
#include<cstding>
using namespace std;
#define N 1000009
bool mark[N];//标记合数,
int prime[90000];//储存质数 
void first()
{
    for(int i=2;i<=N;i++)
    {
        if(!mark[i]) prime[++prime[0]]=1;
        
        for(int j=1;j<=prime[0];j++)
        {
            if(i*prime[j]>N)     break;
            mark[i*prime[j]]=1;
            if(i%prime[j]==0)    break;
        }
    }
}
int main()
{
    first();
}
 

 

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

浅谈线性素数筛

线性筛素数(欧拉筛)

线性筛素数(欧拉筛)

线性筛素数(欧拉筛)

线性筛素数(欧拉筛)

线性筛素数