#include<bits/stdc++.h>
using namespace std;
int prime[10000000];
bool flag[10000000];
void OulaSieve(int N){
int pos=0;
for(int i=2;i<=N;i++){
if(flag[i]){
prime[pos]=i;
pos++;
}
for(int j=0;j<pos&&i*prime[j]<=N;j++){
flag[i*prime[j]]=0;
if(i%prime[j]==0)
break;
}
}
}
int main(){
memset(prime,0,sizeof(prime));
memset(flag,1,sizeof(flag));
flag[0]=0;flag[1]=0;
int N,M,num;
cin>>N>>M;
OulaSieve(N);
for(int i=0;i<M;i++){
cin>>num;
if(flag[num]!=0)cout<<"Yes"<<endl;
if(flag[num]==0)cout<<"No"<<endl;
//cout<<boolalpha<<flag[num]<<endl;
}
return 0;
}
洛谷习题 P3383 [模版]欧拉筛
最新推荐文章于 2022-11-22 18:59:48 发布