链接:P3383
---------------------------------------------
这道题考的是一个线性筛,主要有两种:埃氏筛和欧拉筛
先说埃氏筛,埃氏筛很简单。只要检查每一个数。如果他是没有被标记,就证明他是一个质数。这样我们就需要把他的每一个数标记为合数,然后重复
极为简单
1 #include<bits/stdc++.h> 2 using namespace std; 3 long int a[10000000]; 4 int main() 5 { 6 int n; 7 a[1]=1; 8 cin >>n; 9 for(int i=2;i<=n;++i) 10 { 11 if(a[i]==0) 12 { 13 int j=2; 14 while(i*j<=n) 15 { 16 a[i*j]=1; 17 j++; 18 } 19 } 20 } 21 int num; 22 cin>>num; 23 for(int j=1;j<=num;++j) 24 { 25 int que; 26 cin>>que; 27 if(a[que]==0) 28 cout<<"Yes\n"; 29 else 30 cout<<"No\n"; 31 } 32 return 0; 33 }