是质数
并且质数编号也是质数
筛一下
二分查初位
暴力查下位
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
const int MAXN = 1e6 + 10;
ll check[MAXN] = {0};
ll prime[MAXN] = {0};
ll tf = 0;
void init()
{
for(int i = 2; i < MAXN; i++)
{
if(!check[i])
prime[tf++] = i;
for(int j = 0; j < tf && prime[j] * i < MAXN; j++)
{
check[prime[j] * i] = 1;
if(i % prime[j] == 0)
break;
}
}
}
int main()
{
init();
int N;
cin>>N;
int beg = lower_bound(prime, prime + tf - 5, N) - prime;
for(int i = beg; ; i++)
{
if( !(check[i + 1]) )
{
cout<<prime[i]<<endl;
goto l1;
}
}
l1:
return 0;
}