P3383 【模板】线性筛素数

因为数据很大所以要用线性筛。。

#include<iostream>
#include<cstdio>
using namespace std;
typedef long long ll;
int rd(){
ll x=,fl=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')fl=-;ch=getchar();}
while(ch>=''&&ch<=''){x=(x<<)+(x<<)+(ch^);ch=getchar();}
return x*fl;
}
int n,m,cnt,pri[],ex[];
void phi(){
ex[]=ex[]=;cnt=;
for(int i=;i<=n;i++){
if(!ex[i])pri[++cnt]=i;
for(int j=;j<=cnt&&i*pri[j]<=n;j++){
ex[i*pri[j]]=;
if(!(i%pri[j]))break;
}
}
}
int main(){
n=rd();m=rd();phi();
//for(int i=1;i<=cnt;i++)printf("%d ",pri[i]);cout<<endl;
for(int i=;i<=m;i++){
int x=rd();
if(!ex[x])printf("Yes\n");
else printf("No\n");
}
return ;
}
上一篇:blob 对象 实现分片上传 及 显示进度条


下一篇:用DotNetOpenAuth实现基于OAuth 2.0的web api授权 (一)Getting Start