朴素素数筛
bool isprime(int n) { if(n==1) return 1; int t=sqrt(n); for(int i=2;i<=t;++i) if(n%i==0) return 1; return 0; }
埃氏筛:
const int maxn=1e5+10; int prime[maxn]; void init(int n){ //prime[0]=prime[1]=1;//0和1既不是素数也不是合数 for(int i=2;i<=n;++i){ if(!prime[i]){ for(int j=i*i;j<n;j+=i) prime[j]=1; } } }
欧拉筛: