关于CE
查看原帖
关于CE
141179
pigstd楼主2020/8/21 16:44

本地能过,算了一下内存也差不多够,为什么就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;
}
2020/8/21 16:44
加载中...