灵异事件,这么写凭什么能过
查看原帖
灵异事件,这么写凭什么能过
1022761
wuuk楼主2025/1/16 00:15

AC代码链接

#include <bits/stdc++.h>
using namespace std;
vector<int> primes, minp;
void sieve(int n) {
    minp.assign(n + 1, 0);
    for (int i = 2; i <= n; i++) {
        if (minp[i] == 0) {
            minp[i] == i;
            primes.emplace_back(i);
        }
        for(auto p : primes) {
            if (p * i > n) break;
            minp[p * i] = p;
            if (minp[i] == p) break;
        }
    }
}
int main() {
    ios::sync_with_stdio(false), cin.tie(nullptr);
    int n, q;
    cin >> n >> q;
    sieve(n);
    for (int i = 1; i <= q; i++) {
        int k; cin >> k;
        cout << primes[k - 1] << "\n";
    }
}

第八行写的是minp[i] == i; ??!!

2025/1/16 00:15
加载中...