循环i为啥用int也不行,不久循环到1e8吗?
#include<iostream>
using namespace std;
const int N=1e8+10;
bool vis[N];
int cnt=0;
int prim[N];
void init(int n){
for(int i=2;i<=n;++i){
if(!vis[i]){
prim[++cnt]=i;
for(long long j=i*i;j<=n;j+=i) vis[j]=1;
}
}
}
signed main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
int n,q;cin>>n>>q;
init(n);
for(int i=1;i<=q;++i){
int x;cin>>x;
cout<<prim[x]<<endl;
}
return 0;
}