筛子 maxn设成100000就可以了:

#include<iostream>
#include<vector>
using namespace std;
const int maxn=100001;
vector<int> prime;
bool isprime[maxn];
int main(){
    for(int i=0;i<maxn;i++)isprime[i]=true;
    isprime[0]=isprime[1]=false;
    for(int i=2;i<maxn;i++){
        if(!isprime[i])continue;
        prime.push_back(i);
        for(int j=i*i;j<maxn;j+=i){
            isprime[j]=false;
        }
    }
    int k;
    while(cin>>k){
        cout<<prime[k-1]<<endl;
    }
}