链接: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 }
埃氏筛

相关文章: