码迷,mamicode.com
首页 > 其他好文 > 详细

线性筛素数-欧拉筛法

时间:2017-12-09 18:07:48      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:end   ios   prim   cst   线性   iostream   false   std   str   

 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 }

 

线性筛素数-欧拉筛法

标签:end   ios   prim   cst   线性   iostream   false   std   str   

原文地址:http://www.cnblogs.com/nishikino-curtis/p/8011989.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!