51nod 1181_质数中的质数_筛素数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51nod 1181_质数中的质数_筛素数相关的知识,希望对你有一定的参考价值。

题目描述

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


#include <stdio.h>
#define N 1000005
bool notprime[N];
int prime[N], tot, f[N];
int work()
{
    for (int i = 2; i <= N; i++)
    {
        if (!notprime[i])
        {
            prime[++tot] = i;
            f[i] = tot;
        }
        for (int j = 1; j <= tot && i * prime[j] <= N; j++)
        {
            notprime[i * prime[j]] = 1;
            if (i % prime[j] == 0) break;
        }
    }
    return 0;
}
int main()
{
    int n;
    scanf("%d", &n);
    work();
    for (int i = n; ; i++)
    {
        if (!notprime[i] && !notprime[f[i]])
        {
            printf("%d\n", i);
            break;
        }
    }
    return 0;
}

 

以上是关于51nod 1181_质数中的质数_筛素数的主要内容,如果未能解决你的问题,请参考以下文章

[51NOD1181]质数中的质数(质数筛法)(欧拉筛)

51nod 1181 质数中的质数(质数筛法)

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

1181 质数中的质数(质数筛法)(51NOD基础)

51NOD 1181 质数中的质数(质数筛法)

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