35 lines
716 B
C++
Raw Normal View History

2020-04-25 10:22:20 +08:00
#include <iostream>
#include<cstdio>
using namespace std;
bool pan[100000001] = { 0 };
int chu[1000001] = { 0 }, now = 0;
//<2F><><EFBFBD><EFBFBD>ɸ
void findsu(int n){
for (int i = 2; i <= n; i++) {
if (!pan[i]) {
chu[++now] = i;
}
for (int j = 1; j <= now && i * chu[j] <= n; j++) {
pan[i * chu[j]] = 1;
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>6*2=12<31><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4*3=12<31>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>
if (i % chu[j] == 0) {
break;
}
}
}
}
int main()
{
int n, e;
scanf("%d%d",&n,&e);
findsu(n);//ɸ<><C9B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for (int i = 1; i <= e; i++) {
scanf("%d",&n);
printf("%d\n",chu[n]);
}
}