下面的(欧拉)线性筛法程序中,两个横线处分别应填入:
void sieve() {
for (int n = 2; n <= MAXN; n++) {
if (!isPrime[n]) primes[num++] = n;
for (int i = 0; i < num && ________; i++) { // 横线1
isPrime[n * primes[i]] = true;
if (________) break; // 横线2
}
}
}
- A. n * primes[i] < MAXN ;n % primes[i] == 0
- B. n * primes[i] < MAXN ;primes[i] > n
- C. n * primes[i] <= MAXN ;n % primes[i] == 0
- D. n * primes[i] <= MAXN ;primes[i] > n
正确答案:C