疑似线性筛
#include<bits/stdc++.h>
using namespace std;
int v[1000005],prime[1000005];
void primes(int n){
int flag=0;
memset(v,0,sizeof(v));
for(int i=2;i<=n;i++){
if(v[i]==0){
v[i]=i;
prime[++flag]=i;
}
for(int j=1;j<=flag;j++){
if(prime[j]>v[i]||prime[j]>n/i) break;
v[i*prime[j]]=prime[j];
}
}
}
int main(){
int n;
cin>>n;
primes(1000005);
cout<< prime[n];
}