第23672题
在埃拉托斯特尼筛法中,筛选不大于n的所有素数时最外层循环应遍历什么范围

给定埃拉托斯特尼筛法的代码实现框架,选出横线处最外层循环的正确遍历范围:

vector<int> sieveOfEratosthenes(int n) {
    std::vector<bool> isPrime(n + 1, true);
    std::vector<int> primes;
    _________________________ {
        if (isPrime[i]) {
            primes.push_back(i);
            for (int j = i * i; j <= n; j += i) {
                isPrime[j] = false;
            }
        }
    }
    for (int i = sqrt(n) + 1; i <= n; ++i) {
        if (isPrime[i]) {
            primes.push_back(i);
        }
    }
    return primes;
}
A

for (int i = 2; i <= n; ++i)

B

for (int i = 1; i < n; ++i)

C

for (int i = 2; i <= sqrt(n); ++i)

D

for (int i = 1; i <= sqrt(n); ++i)

提交0次 正确率0.00%
答案解析