#include<bits/stdc++.h>
using namespace std;
const int MAX_N = 1e8+9;
int prime[MAX_N];
bool isprime[MAX_N];
int n,q,point;
int top=0;
void get_prime(int n)
{
memset(isprime,true,sizeof(isprime));
for(int i=2;i<=n;i++)
{
if(isprime[i])
{
prime[++top]=i;
}
for(int j=1;j<=top&&i*prime[j]<=n;j++)
{
isprime[i*prime[j]]=false;
if(i%prime[j]==0)
{
break;
}
}
}
}
int main()
{
cin>>n>>q;
get_prime(n);
for(int i=1;i<=q;i++)
{
cin>>point;
cout<<prime[point];
if(i!=q)
cout<<endl;
}
return 0;
}
线性筛素数模板
最新推荐文章于 2024-08-25 06:11:42 发布