附上代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include<bits/stdc++.h>
#define MAXN 100000003
using namespace std;
long long nn, m, N, a[MAXN];
bool b[MAXN];
bool is(long long A) {
if (A < 2) return 0;
for (long long i = 2; i * i <= A; ++i)
if (A % i == 0) return 0;
return 1;
}
void ny(long long n) {
long long x = 1;
for (long long i = 2; i < n; i++) {
if (b[i]) {
if (is(i)) {
a[x] = i;
for (long long j = 2; j * 2 <= n; j++)
b[j * 2] = false;
x++;
}
}
}
}
int main() {
freopen("C:\\Users\\wkl20\\Downloads\\P3383_1in.in", "r", stdin);
freopen("C:\\Users\\wkl20\\Downloads\\P3383_1outoutout.out", "w", stdout);
memset(b, true, sizeof(b));
scanf("%d%d", &nn, &m);
ny(nn);
for (long long i = 0; i < m; i++) {
scanf("%d", &N);
printf("%d\n", a[N]);
}
return 0;
}