在 【模板】线性筛素数 中,我仅仅开了 11 的空间来存储质数,却依然 AC了 。
然而,在将测试点 1 的数据复制下来后,我在本地运行同样的代码,却发现程序直接 RE 了。
所以,这究竟是怎么回事?
附代码:
#include <bits/stdc++.h>
using namespace std;
const int MAXN=1e8+10;
int n,m,book[MAXN],zs[int(11)],top;
int main(){
cin>>n>>m;
for(int i=2;i<=n;i++){
if(!book[i])zs[++top]=i;
for(int j=1;j<=top&&i*zs[j]<=n;j++){
book[i*zs[j]]=1;
if(i%zs[j]==0)break;
}
}
for(int i=1;i<=m;i++){
int x;
scanf("%d",&x);
printf("%d\n",zs[x]);
}
return 0;
}