RE求助
查看原帖
RE求助
639635
Lina_楼主2023/3/13 23:01
#include<bits/stdc++.h>
using namespace std;
bool flag[100000010];//flag:标注是否质数
int prime[6000100];//素数表
int main(){
	int s=0,num=0,n,q;
	scanf("%d %d",&n,&q);
	for(int i=2;i<=n;i++){
		if(flag[i]==0){
			prime[++num]=i;
			for(int p=1;p<=num;p++){
				int p1=prime[p];
				if(i*p1<=n)flag[i*p1]=1;
			}
		}
		else {
			for(int p=1;p<=num;p++){
				int p1=prime[p];
				if(i*p1<=n)flag[i*p1]=1;
				if(p1%i==0)break;
			}
		}
	}
    for(int i=1;i<=q;i++){
    	int k;
    	cin>>k;
    	cout<<prime[k]<<endl;
	}
	return 0;
}
2023/3/13 23:01
加载中...