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

A28411. 下述代码实现素数表的线性筛法,筛选出所有小于等于 的素数,横线上应填的最佳代码是( )。vector<int> sieve_linear(int n) { vector<bool> is_prime(n +1, true); vector<int> primes; if (n < 2) return primes; is_prime[0] = is_prime[1] = false; for (…

单选题 困难

题目描述

下述代码实现素数表的线性筛法,筛选出所有小于等于 的素数,横线上应填的最佳代码是(    )。

vector<int> sieve_linear(int n) {
	vector<bool> is_prime(n +1, true);
	vector<int> primes;
	
	if (n < 2) return primes;
	
	is_prime[0] = is_prime[1] = false;
	for (int i = 2; i <= n/2; i++) {
		if (is_prime[i])
			primes.push_back(i);
	
		for (int j = 0; ________________________________ ; j++) { // 在此处填入代码
			is_prime[ i * primes[j] ] = false;
			if (i % primes[j] == 0)
				break;
		}
	}
	for (int i = n/2 +1; i <= n; i++) {
		if (is_prime[i])
			primes.push_back(i);
	}
	
	return primes;
}

选项(单选)

上一题 下一题