欧拉筛MLE,求助(
查看原帖
欧拉筛MLE,求助(
671995
ciciliyu楼主2023/5/11 14:00

rt,代码如下

#include<bits/stdc++.h>
using namespace std;
const int maxn=100000000;
int n,q,pri[maxn],vis[maxn];
void prim() {
	memset(pri,0,sizeof(pri));
	memset(vis,0,sizeof(vis));
	for(int i=2; i<=n; i++) {
		if(!vis[i])
			pri[++pri[0]]=i;
		for(int j=1; j<=pri[0]&&i*pri[j]<=n;j++){
			vis[i*pri[j]]=1;
			if(i%pri[j]==0)
				break;
		}
	}
}
int main() {
	scanf("%d %d",&n,&q);
	prim();
	for(int i=1; i<=q; i++) {
		int k;
		scanf("%d",&k);
		printf("%d \n",pri[k]);
	}
	return 0;
}
2023/5/11 14:00
加载中...