數論——線性篩素數(尤拉篩) 洛谷 3383
阿新 • • 發佈:2018-12-18
#include<iostream> using namespace std; const int maxn=1e7+6; int n,m; int flag[maxn]; int p[maxn]; void getPrime(int n) { int r=0; for(int i=2;i<=n;i++) { if(flag[i]==0) p[++r]=i; for(int j=1;j<=r;j++) { if(i*p[j]>n) break; flag[i*p[j]]=1;//任意一個合數是一個質數與一個數的積 } } } int main() { cin>>n>>m; getPrime(n); flag[1]=1;//0不是質數 flag[0]=1;//1不是質數 for(int i=1;i<=m;i++) { int x; cin>>x; if(flag[x]==0) cout<<"Yes"<<endl; else cout<<"No"<<endl; } return 0; }