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

51Nod - 1181 质数中的质数(质数筛法)

时间:2017-08-18 09:37:49      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:bbb   sample   tput   show   for   i++   51nod   scanf   cst   

如果一个质数,在质数列表中的编号也是质数,那么就称之为质数中的质数。例如:3 5分别是排第2和第3的质数,所以他们是质数中的质数。现在给出一个数N,求>=N的最小的质数中的质数是多少(可以考虑用质数筛法来做)。

 

Input输入一个数N(N <= 10^6)Output输出>=N的最小的质数中的质数。Sample Input

20

Sample Output

31

用eular质数筛即可

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<cstring>
 5 #include<algorithm>
 6 
 7 using namespace std;
 8 char isprime[10000005];
 9 int primelist[10000005];
10 
11 int Eular(int n)
12 {
13     int cnt=0,x;
14     memset(isprime,1,sizeof(isprime));
15     int i=2;
16     while(x<n)
17     {
18         if(isprime[i])
19         {
20             cnt++;
21             primelist[cnt]=i;
22             if(isprime[cnt])
23                 x=i;
24         }
25         for(int j=1;j<=cnt&&i*primelist[j]<=1e7;j++)
26         {
27             isprime[i*primelist[j]]=0;
28             if(i%primelist[j]==0)
29                 break;
30         }
31         i++;
32     }
33     return x;
34 }
35 
36 int main()
37 {
38     int n;
39     while(~scanf("%d",&n))
40     {
41         printf("%d\n",Eular(n));
42     }
43     
44     
45     return 0;
46 }

 

51Nod - 1181 质数中的质数(质数筛法)

标签:bbb   sample   tput   show   for   i++   51nod   scanf   cst   

原文地址:http://www.cnblogs.com/xibeiw/p/7387661.html

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