luogu3383 线性筛模板

来源:互联网 发布:欧楷笔法 知乎 编辑:程序博客网 时间:2024/05/18 02:56

一直拖到今天才把它写好

也许不应该谈后悔

一切都没有如果

#include<bits/stdc++.h>#define maxn 10000001using namespace std;template <typename T> void read(T &x){x=0;int f=1;char ch=getchar();for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-1;for(;isdigit(ch);ch=getchar())x=(x<<1)+(x<<3)+ch-'0';x*=f;}bool isPrime[maxn];int prime[maxn],total;void work(){memset(isPrime,0,sizeof(isPrime));isPrime[0]=isPrime[1]=1;for(int i=2;i<=maxn;++i){if(!isPrime[i]) prime[++total]=i;for(int j=1;j<=total&&i*prime[j]<=maxn;++j){isPrime[i*prime[j]]=1;if(i%prime[j]==0) break;}}}int main(){work();int n,m;read(n),read(m);for(int i=1;i<=m;++i){int x;read(x);if(!isPrime[x]) cout<<"Yes"<<endl;else cout<<"No"<<endl;} return 0;}


原创粉丝点击