//P3383 【模板】线性筛素数
#include<bits/stdc++.h>
using namespace std;
int is_prime[10000005];
void Find_prime(int n)
{
memset(is_prime,1,sizeof(is_prime));
is_prime[1]=0;
for(int i=2;i*i<=n;i++)
if(is_prime[i])
for(int j=i*i;j<=n;j+=i)
is_prime[j]=0;
}
int main()
{
int n,m;
scanf("%d%d",&n,&m);
Find_prime(n+1);
for(int i=1;i<=m;i++){
int Ask;scanf("%d",&Ask);
printf((is_prime[Ask])?"Yes\n":"No\n");
}
return 0;
}
来源:https://www.cnblogs.com/akioi/p/12207227.html