#4403. [GESP202512 八级 C++] 第 10 题

[GESP202512 八级 C++] 第 10 题

下列程序实现了线性筛法(欧拉筛),用于在 O(n)O(n) 时间内求出 1n1 \sim n 之间的所有质数。为了保证每个合数只被其最小质因子筛掉,横线处应填入的语句是( )。

for (int i = 2; i <= n; i++) {
    if (!not_prime[i]) primes[++cnt] = i;
    for (int j = 1; j <= cnt && i * primes[j] <= n; j++) {
        not_prime[i * primes[j]] = true;
        if (________) break; // 在此处填入选项
    }
}

{{ select(1) }}

  • i + primes[j] == n
  • primes[j] > i
  • i % primes[j] == 0
  • i % primes[j] != 0