RE求调
查看原帖
RE求调
583593
AC_bee楼主2024/10/4 12:19
#include<bits/stdc++.h>
using namespace std;
const int MAXN=1e7;
long long n,z[MAXN],p[MAXN],m,q;
long long u[MAXN],t;
int main(){
	scanf("%lld%lld",&n,&t);
	for(long long q=2;q<=n;q++){
		if(z[q]==0) {
			z[q]=q;
			p[++m]=q;
			u[m]=q;
		}
		for(long long i=1;i<=m;i++){
			if(p[i]>z[q] || p[i]>n/q) break;
			z[p[i]*q]=p[i];
		}
	}
	while(t--)
	{
		cin>>q;
		cout<<u[q]<<endl;
	}
	return 0; 
}
2024/10/4 12:19
加载中...