35 lines
716 B
C++
35 lines
716 B
C++
|
#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]);
|
|||
|
}
|
|||
|
}
|