您的位置:首页 > 其它

【模板】线性筛素数

2017-09-10 08:46 232 查看
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int sz = 10000010;
int su[sz];
bool pd[sz];
int n,m,cnt,x;
int main()
{
cin>>n>>m;
memset(pd,1,sizeof(pd));
pd[0]=pd[1]=0;
for(int i=2;i<=n;++i)
{
if(pd[i])
{
cnt++;
su[cnt]=i;
}
for(int j=1;j<=cnt;++j)
{
if(i*su[j]>n)
break;
pd[i*su[j]]=0;
if(i%su[j]==0)
break;
}
}
for(int i=1;i<=m;++i)
{
cin>>x;
if(pd[x])
printf("Yes\n");
else
printf("No\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: