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

补全下列C++代码中缺失的最外层循环:

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%
答案解析