#include<iostream>
#include<cstdio>
#include<bitset>
using namespace std;
const int maxn=1e8+10;
bitset<maxn> st;
int primes[maxn];
int cnt=0;
void ola_prime(int x){
for (int i=2;i<=x;i++){
if(!st[i]) primes[cnt++]=i;
for(int j=1;j<=cnt && i*primes[j]<=x;j++){
st[primes[j]*i]=1;
if(i % primes[j]==0)break;
}
}
return;
}
int main(){
int n,q;
scanf("%d %d",&n,&q);
ola_prime(n);
while(q>0){
int k;scanf("%d",&k);
printf("%d\n",primes[k]);
q--;
}
return 0;
}
在Dev-C++上运行,显示return value 3221225620。去搜索引擎上搜索,说是“除0错误,一般发生在整型数据除了0的时候”。但并未发现此错误。求大佬帮助