质数中的质数(质数筛法)

来源:互联网 发布:任我行管家婆软件 编辑:程序博客网 时间:2024/04/29 10:54
如果一个质数,在质数列表中的编号也是质数,那么就称之为质数中的质数。例如:3 5分别是排第2和第3的质数,所以他们是质数中的质数。现在给出一个数N,求>=N的最小的质数中的质数是多少(可以考虑用质数筛法来做)。
Input
输入一个数N(N <= 10^6)
Output
输出>=N的最小的质数中的质数。
Input示例
20
Output示例

31

#include <iostream>using namespace std;#define SIZE 1000000int main(){    int n;    cin >> n;        bool flag[SIZE] = {false};    flag[1] = true;    flag[2] = false;    long long int count, i, j;    count = 0;    for (i = 2; i < SIZE; i++)    {        if (!flag[i])        {            count++;            if ((!flag[count]) && (i >= n))            {                cout << i << endl;                break;            }            else            {                for (j = i*i; j < SIZE; j += i)                {                    flag[j] = true;                }            }        }    }        return 0;}


原创粉丝点击