测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A20874. 埃氏筛中将内层循环从 j=i*i 开始而不是 j=2*i 的主要原因是( )。vector<int> eratosthenes_sieve(int n) { vector<bool> is_composite(n + 1, false); vector<int> primes; for (int i = 2; i <= n; i++) { if (is_composite[i]) continu…

单选题 困难

题目描述

埃氏筛中将内层循环从 j=i*i 开始而不是 j=2*i 的主要原因是(    )。

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

    for (int i = 2; i <= n; i++) {
        if (is_composite[i]) continue;

        primes.push_back(i);

        for (long long j = (long long)i * i; j <= n; j += i)
            is_composite[j] = true;
    }
    return primes;
}

选项(单选)

上一题 下一题