线性筛素数-欧拉筛法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线性筛素数-欧拉筛法相关的知识,希望对你有一定的参考价值。

 1 #include<iostream>
 2 #include<cstring>
 3 using namespace std;
 4 int num[100000];
 5 long long prime[5000001];
 6 bool is_prime[10000001];
 7 int N,M;
 8 int cnt=1;
 9 int main()
10 {
11     for(int k=0;k<10000001;k++)
12     {
13         is_prime[k]=true;
14     }
15     cin>>N>>M;
16     is_prime[0]=false;
17     is_prime[1]=false;
18     is_prime[2]=true;
19     prime[1]=2;
20     for(int i=2;i<N;i++)
21     {
22        if(is_prime[i]==true){prime[cnt]=i;cnt++;} 
23        for(long long j=1;j<=cnt&&prime[j]*i<=N;j++)
24        {
25            is_prime[prime[j]*i]=false;
26            if(i%prime[j]==0)break;
27        }
28     }
29     for(int i=0;i<M;i++)
30     {
31         cin>>num[i];
32         if(is_prime[num[i]]==false)cout<<"No"<<endl;
33         else cout<<"Yes"<<endl;
34     }
35     return 0;
36 }

 

以上是关于线性筛素数-欧拉筛法的主要内容,如果未能解决你的问题,请参考以下文章

数学基础素数线性筛法--欧拉筛法模板普通筛法的优化

线性筛素数-欧拉筛法

[洛谷P3383]线性筛素数-欧拉筛法

欧拉筛法

[模板]线性筛素数(欧拉筛法)

线性筛