全re,目前还没有解决;
查看原帖
全re,目前还没有解决;
1030602
yi_qing楼主2023/11/3 20:27
#include <iostream>
using namespace std;
const int N = 1e8 + 10;
int n, q;
int primes[N];
bool st[N];

void init()
{
    int cnt = 0;
    for (int i = 2; i <= n; i ++)
    {
        if (!st[i]) primes[++cnt] = i;

        for (int j = 0; primes[j] <= n / i; j ++)
        {
            st[primes[j] * i] = true;
            if (i % primes[j] ==  0) break;
        }
    }
}

int main()
{
    scanf("%d%d",&n,&q);
    init();
    while (q --)
    {
        int k;
        scanf("%d", &k);
        printf("%d\n", primes[k]);
    }
    return 0;
}
2023/11/3 20:27
加载中...