本地能过,算了一下内存也差不多够,为什么就CE了啊,而且把数组改小救过了
有人知道我现在应该怎么办吗
#include<bits/stdc++.h>
using namespace std;
int n,q,cnt;
int prime[6000010],f[100000004]={1,1};
inline int read()
{
char c=getchar();int x=0;bool f=0;
for(;!isdigit(c);c=getchar())f^=!(c^45);
for(;isdigit(c);c=getchar())x=(x<<1)+(x<<3)+(c^48);
if(f)x=-x;return x;
}
int main()
{
cin>>n>>q;
for (int i=2;i<=n;i++)
{
if (!f[i])prime[++cnt]=i;
for (int j=1;j<=cnt&&i*prime[j]<=n;j++)
{
f[i*prime[j]]=1;
if (i%prime[j]==0)break;
}
}
for (int i=1;i<=q;i++)
{
int a=read();
printf("%d",prime[a]);
}
return 0;
}