代码如下,样例数据过了,但测试数据全紫了,希望大佬们帮我修修
介个是埃筛↓
变量我尽量起的简单qwq
#include<bits/stdc++.h>
const int N= 5e6 + 10;
using namespace std;
bool su[N];
void sushu()
{
for(int i=0;i<=N;i++)
{
su[i]=1;
}
su[0]=0;
su[1]=0;
for(int i=2;i<=N;i++){
if(su[i]){
for(int j=i+i;j<=N;j+=i)
su[j]=0;
}
}
}
int n,q;
int ans;
int a[10000010];
int b[10000010];
int main()
{
sushu();
scanf("%d%d",&n,&q);
int k[q];
for(int i=0;i<q;i++)
scanf("%d",&k[i]);
for(int i=0;i<=n;i++)
{
if(su[i]){
b[i]=i;
ans++;
}
}
int cha=n-ans-1;
sort(b,b+n);
for(int i=0;i<n;i++)
{
if(b[i]!='0') a[i]=b[i];
}
sort(a,a+n);
for(int i=0;i<q;i++)
printf("%d\n",a[cha+k[i]]);
return 0;
}
吐槽一句:这测试样例太坑了吧