#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
int prime[1000000];
bool jg[100000000];
int main(){
std::ios::sync_with_stdio(false);
memset(jg,1,sizeof(jg));
int n,q;
int k;
cin>>n>>q;
int c = 0;
for(int i = 2;i<=n;i++){
if(jg[i]){
prime[c++] = i;
}
for(int j = 0;j<c&&prime[j]*i<=n;j++){
jg[prime[j]*i]=0;
if(i%prime[j]==0){
break;
}
}
}
for(int i = 0;i<q;i++){
cin>>k;
cout<<prime[k-1]<<endl;
}
return 0;
}
这是为什么?