#include<bits/stdc++.h>
using namespace std;
const int N=1e8+5;
bool z[N];int n,m;int a[N],b[N];int cnt;
int main(){
cin>>n>>m;
for(int i=0;i<m;i++)
cin>>a[i];
for(int i=2;i<=n;i++){
if(!z[i])b[++cnt]=i;
for(int j=1;j<=cnt&&i*b[j]<=n;j++){
z[i*b[j]]=1;
if(i%b[j]==0)break;
}
}
for(int i=0;i<m;i++)
cout<<b[a[i]]<<endl;
return 0;
}
数论:线性筛质数
最新推荐文章于 2024-07-12 18:02:43 发布