#3573. [GESP202603 五级 C++] 第 5 题

[GESP202603 五级 C++] 第 5 题

下面代码实现了欧拉(线性)筛,横线处应填写( )。

vector<int> euler_sieve(int n) {
    vector<bool> is_composite(n + 1, false);
    vector<int>  primes;

    for (int i = 2; i <= n; i++) {
        if (!is_composite[i])
            primes.push_back(i);

        for (int j = 0; ________________________ && (long long)i * primes[j] <= n; j++) {
            is_composite[i * primes[j]] = true;

            if (i % primes[j] == 0)
                break;
        }
    }
    return primes;
}

{{ select(1) }}

  • j <= n
  • j < sqrt(n)
  • j < primes.size()
  • j < i