求出素数表即可; 注意是第一个素数是prime[0]
#include<iostream>
#include<cstring>
using namespace std;
const int N = 1000000;//求出100万之内的素数
int prime[N];
bool notPrime[N];
int main()
{
int count = 0;
memset(prime, 0, sizeof(prime));
memset(notPrime, 0, sizeof(notPrime));
for(int i = 2; i < N; i++)
{
if(!notPrime[i])
prime[count++] = i;
for(int j = 0; j < count && i * prime[j] < N; j++)
{
notPrime[i * prime[j]] = true;
if(!(i % prime[j]))
break;
}
}
int n;
cin >> n;
cout << prime[n - 1] << endl;//第一个是prime[0]
return 0;
}