求教。为什么加了优化就WA,删掉就AC了。奇怪
查看原帖
求教。为什么加了优化就WA,删掉就AC了。奇怪
421981
XTZ11楼主2021/7/13 12:50

以下为程序

#include<bits/stdc++.h>
using namespace std;
int n,q,k,cnt;
bool a[100000005];
int b[6000005];

void find(int x)
{
    memset(a,1,sizeof(a));
	a[1]=0;
	for(int i=2;i<=n;i++)
	{
		if(a[i]) b[++cnt]=i;
		for(int j=1;j<=cnt&&i*b[j]<=n;j++) 
		{
			a[i*b[j]]=0;
			if(i%b[j]==0)
				break; 
		}
	}
}
int main()
{
	std::ios::sync_with_stdio(0);//就这里
	cin>>n>>q;
	find(n);
	for(int i=1;i<=q;i++)
		{
			scanf("%d",&k);
			printf("%d\n",b[k]);
		}
	return 0;
}
2021/7/13 12:50
加载中...