求助
查看原帖
求助
549418
hopeless_hope楼主2023/1/21 15:10
#include<cstdio>
#include<vector>
using namespace std;
vector<unsigned long long>prime;
bool isnp[100000005];
unsigned long long n,q;
void isprime(){
	for(unsigned long long i=2;i<=n;i++){
		if(!isnp[i]) prime.push_back(i);
		for(unsigned long long j=1;j<=sizeof(prime)-1;j++){
			if(prime[j]*i>n) break;
			isnp[i*prime[j]]=true;
			if(prime[j]%i==0) break;
		}
	}
}
int main(){
	prime.push_back(415411);
	scanf("%llu %llu",&n,&q);
	isprime();
	for(unsigned long long i=1;i<=q;i++){
		unsigned long long x;
		scanf("%llu",&x);
		printf("%llu\n",prime[x]);
	}
	return 0;
}
2023/1/21 15:10
加载中...