第21203题 单选
C++线性筛(欧拉筛)代码中横线处应填入的语句是哪一项

下列C++程序实现了线性筛法(欧拉筛),用于在O(n) 时间内求出 1~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; // 在此处填入选项
    }
}
A

i + primes[j] == n

B

primes[j] > i

C

i % primes[j] == 0

D

i % primes[j] != 0