为什么不对呢,求问!
#include<bits/stdc++.h>
using namespace std;
long long n,a[1000001],b[1000001],m,c[1000001],cnt;
int main()
{
scanf("%lld%lld",&n,&m);
for(long long i=1;i<=n;i++)
a[i]=i;
for(long long i=1;i<=m;i++)
scanf("%d",&b[i]);
for(long long i=1;i<=n;i++)
{
if(a[i]<=1)
a[i]=0;
for(long long j=2;j<a[i];j++)
{
if(a[i]%j==0)
a[i]=0;
}
}
for(long long i=1;i<=n;i++)
if(a[i]!=0)
c[++cnt]=a[i];
for(long long i=1;i<=m;i++)
printf("%lld\n",c[b[i]]);
return 0;
}