如果一个质数,在质数列表中的编号也是质数,那么就称之为质数中的质数。例如:3 5分别是排第2和第3的质数,所以他们是质数中的质数。现在给出一个数N,求>=N的最小的质数中的质数是多少(可以考虑用质数筛法来做)。
#include<bits/stdc++.h>
#define M 10000000
using namespace std;
bool flag[M+1];
int prime[M+1];
int main()
{
int cnt=0,n;
cin>>n;
for(int i=2;i<=M;i++)
{
if(flag[i]==0)
{
cnt++;
prime[cnt]=i;
}
for(int j=1;j<=cnt&&i*prime[j]<=M;j++)
{
flag[i*prime[j]]=1;
**if(i%prime[j]==0)break;**
}
}
for(int i=1;i<=cnt;i++)
if(prime[i]>=n&&flag[i]==0)
{
cout<<prime[i]<<endl;
break;
}
return 0;
}