下列程序实现了线性筛法(欧拉筛),用于在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
正确答案:C
试卷来源:202512 CCF-GESP编程能力等级认证C++八级真题