1181 质数中的质数(质数筛法)(51NOD基础)
Posted 0一叶0知秋0
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1181 质数中的质数(质数筛法)(51NOD基础)相关的知识,希望对你有一定的参考价值。
1181 质数中的质数(质数筛法)(51NOD基础)
题目来源: Sgu
基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题
如果一个质数,在质数列表中的编号也是质数,那么就称之为质数中的质数。例如:3 5分别是排第2和第3的质数,所以他们是质数中的质数。现在给出一个数N,求>=N的最小的质数中的质数是多少(可以考虑用质数筛法来做)。
Input
输入一个数N(N <= 10^6)
Output
输出>=N的最小的质数中的质数。
Input示例
20
Output示例
31
#include <cstdio> #define maxn 10000000 bool prime[maxn] ; int p[maxn] ; int total ; void init(){ total = 0 ; prime[0] = prime[1] = false ; for(int i = 2 ; i<maxn ; i++){ prime[i] = true ; } //线性筛法 复杂度 O(n) for(int i=2 ; i<maxn ; i++){ if(prime[i]) p[++total] = i ; for(int j=1 ; j<=total&&p[j] * i < maxn ; j++){ prime[i * p[j] ] = false ; if(i%p[j] == 0 ) break ; } } } int main(){ int n ; init() ; while(~scanf("%d" , &n)){ for(int i=1 ; i<=total ; i++){ if(prime[i] && p[i] >=n){ printf("%d\n" , p[i]) ; break ; } } } return 0 ; }
以上是关于1181 质数中的质数(质数筛法)(51NOD基础)的主要内容,如果未能解决你的问题,请参考以下文章