本文共 1089 字,大约阅读时间需要 3 分钟。
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 #include 15 16 using namespace std;17 18 inline void read(int &x){19 x=0;20 char t=getchar();21 bool f=0;22 23 while(t<'0' || t>'9'){24 if(t=='-')f=1;25 t=getchar();26 }27 28 while(t>='0' && t<='9'){29 x=(x<<3)+(x<<1)+t-'0';30 t=getchar();31 }32 33 if(f)x=-x;34 }35 36 void Euler();37 38 bool pd[10000001];39 int prime[700001],p=0;40 41 int n,m,i,j,x;42 43 int main(){44 memset(pd,1,sizeof(pd));45 46 pd[1]=0;47 48 read(n);read(m);49 50 Euler();51 52 for(i=1;i<=m;i++){53 read(x);54 55 if(pd[x])printf("Yes\n");56 else printf("No\n");57 }58 59 return 0;60 }61 62 void Euler(){63 int i,j;64 65 for(i=2;i<=n;i++){66 if(pd[i]){67 p++;68 prime[p]=i;69 }70 71 for(j=1;j<=p;j++){72 if(i*prime[j]>n)break;73 74 pd[i*prime[j]]=0;75 76 if(i%prime[j]==0)break;77 }78 }79 }
转载于:https://www.cnblogs.com/running-coder-wfh/p/7441516.html