全WA求助
查看原帖
全WA求助
752094
MornHus楼主2022/11/5 16:35
#include<bits/stdc++.h>
using namespace std;
int n,q;
int pointer,prime[100000002];
bool not_prime[100000002];
void pre(){
    for(int i=2;i<=n;i++){
    	if(not_prime[i]==0){
    		prime[++pointer]=i;
    		for(int j=i*i;j<=n;j+=i){
    			not_prime[j]=1;
			}
		}
	}
}//埃筛

void euler_prime(){
	not_prime[1]=1;
	for(int i=2;i<=n;i++){
		if(!not_prime[i]){
			prime[++pointer]=i;
		}
		for(int j=1;prime[j]*i<=n&&j<=pointer;j++){
			not_prime[i*prime[j]]=1;
			if(i%prime[j]==0)break;
		}
	}
}//欧拉筛
int main(){
    scanf("%d %d",&n,&q);
    euler_prime();
    int t;
    for(int i=1;i<=q;i++){
    	scanf("%d",&t);
    	printf("%d",prime[t]);
	}
    return 0;
}
2022/11/5 16:35
加载中...