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

A67928. 埃氏筛中将内层循环从 j = i*i 开始而不是 j = 2*i 的主要原因是( )。1 vector<int> eratosthenes_sieve(int n) {

单选题

题目描述

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

1 vector<int> eratosthenes_sieve(int n) {
2  vector<bool> is_composite(n + 1, false);
3  vector<int> primes;
4
5  for (int i = 2; i <= n; i++) {
6   if (is_composite[i]) continue;
7
8   primes.push_back(i);
9
10   for (long long j = (long long)i * i; j <= n; j += i)
11    is_composite[j] = true;
12  }
13  return primes;
14 }


选项(单选)