#include<bits/stdc++.h>
using namespace std;
int cnt,n,q,l;
const int N=100000010;
bool st[N];
int p[N];
void gp(int n)
{
for(int i=2;i<=n;i++)
{
if(!st[i])
{
p[cnt++]=i;
}
for(int j=0;j<=n/i;j++)
{
st[p[j]*i]=true;
if(i%p[j]==0) break;
}
}
}
int main()
{
cin>>n>>q;
gp(n);
while(q--)
{
cin>>l;
cout<<p[l-1]<<endl;
}
return 0;
}
心血来潮调一下远古遗留问题,为什么竟然过不了?
感谢