在埃拉托斯特尼筛法中 ,要筛选出不⼤于n的所有素数 ,最外层循环应该遍历什么范围 ( ) ?
1 vector<int> sieveOf Eratosthenes(int n) { 2 std::vector<bool> isPrime(n + 1, true); 3 std::vector<int> primes; 4 { 5 if (isPrime[i]) { 6 primes.push_back(i); 7 for (int j = i * i; j <= n; j += i) { 8 isPrime[j] = false; 9 } 10 } 11 } 12 for (int i = sqrt(n) + 1; i <= n; ++i) { 13 if (isPrime[i]) { 14 primes.push_back(i); 15 } 16 } 17 return primes; 18 }
for (int i = 2; i <= n; ++i)
for (int i = 1; i < n; ++i)
for (int i = 2; i <= sqrt(n); ++i)
for (int i = 1; i <= sqrt(n); ++i)