案例全错了,不知道哪的问题
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>
#include <cstdio>
#include <cstring>
using namespace std;
bool* isPrime = new bool[100000005];
int mydata[6000010];
void GetPrime(int n) {
memset(isPrime, 1, sizeof(isPrime));
//1不是素数
isPrime[1] = 0;
int cnt = 0;
for (int i = 2; i <= n; i++) {
//没筛掉
if (isPrime[i]) {
mydata[++cnt] = i;
}
//遍历已有素数
for (int j = 1; j <= cnt && i * mydata[j] <= n; j++) {
//i*data->at(j)为素数
isPrime[i * mydata[j]] = 0;
//保证线性
if (i % mydata[j] == 0) {
break;
}
}
}
}
int main()
{
int n, k;
cin >> n >> k;
GetPrime(n);
int curr;
while (k--) {
scanf("%d", &curr);
printf("%d\n", mydata[curr]);
}
return 0;
}