求助,欧拉筛为什么会TLE,悬关
查看原帖
求助,欧拉筛为什么会TLE,悬关
623291
A_Bit_Coldwinner?楼主2023/5/22 20:06

rt

#include<bits/stdc++.h>
using namespace std;
const int N=1e7+5;
map <long long,bool> f;
long long cnt,prime[N];
void Prime(long long n) {
	f[1]=1;
	for(long long i=2;i<=n;i++) {
		if(!f[i]) prime[++cnt]=i;
		for(long long j=1;j<=cnt&&i*prime[j]<=n;j++) {
			if(i*prime[j]>n) break;
			f[i*prime[j]]=1;
			if(i%prime[j]==0) break;
		}
	}
	return;
}
int main() {
	//freopen("prime.in","r",stdin);
	//freopen("prime.out","w",stdout);
    long long n,q,k;
    scanf("%lld %lld",&n,&q);
    Prime(n);
    while(q--) {
		scanf("%lld",&k);
		printf("%lld\n",prime[k]);
	}
    return 0;
}
2023/5/22 20:06
加载中...