素数筛选法模板

#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<iostream>
using namespace std;
const int L=100005,inf=1<<30,maxn=1005;
int prime[L],np=0;
bool is[L];
void getPrime()
{
    fill(is,is+L,1);
    is[1]=0;
    for(int i=2;i<L;i++)
        if(is[i])
        {
            prime[++np]=i;
            for(int j=2*i;j<L;j+=i) is[j]=0;
        }
}
bool is_prime(int n)
{
    for(int i=1;prime[i]*prime[i]<=n;i++)
        if(n%prime[i]==0) return 0;
    return 1;
}
int main()
{
    getPrime();
    return 0;
}

你可能感兴趣的:(素数筛选法)