全WA求助!!!
查看原帖
全WA求助!!!
971101
LSR120218_juruo楼主2025/2/6 20:54

my code:

#include <bits/stdc++.h>
using namespace std;

std::vector<int> eulerSieve(int n) {
	std::vector<bool> isPrime(n + 1, true); // 标记是否为素数
	std::vector<int> primes; // 存储素数
	isPrime[0] = isPrime[1] = false; // 0和1不是素数

	for (int i = 2; i <= n; ++i) {
		if (isPrime[i]) {
			primes.push_back(i); // i是素数,加入列表
		}
		// 筛选掉所有i的倍数
		for (int j = 0; j < primes.size() && i * primes[j] <= n; ++j) {
			isPrime[i * primes[j]] = false; // 标记为非素数
			if (i % primes[j] == 0) {
				break; // 如果i已经是primes[j]的倍数,停止筛选
			}
		}
	}
	return primes;
}

int main() {
	std::ios::sync_with_stdio(0);
	int n;
	int q;
	cin >> n;
	cin >> q;
	vector<int>b;
	vector<int>a = eulerSieve(n);
	for (int i = 1; i <= q; i++) {
		int x;
		cin >> x;
		b.push_back(a[i - 1]);
	}
	for (int i = 0; i < q; i++) {
		cout << b[i] << endl;
	}
	return 0;
}

样例过了,为什么内部不行?

2025/2/6 20:54
加载中...