最大的质数题解!!!
2025-03-20 17:39:33
发布于:广东
8阅读
0回复
0点赞
#include <iostream>
#include <vector>
using namespace std;
const int MAXN = 1e6 + 5;
vector<bool> isPrime(MAXN, true);
void sieve() {
isPrime[0] = isPrime[1] = false;
for (int i = 2; i * i < MAXN; i++) {
if (isPrime[i]) {
for (int j = i * i; j < MAXN; j += i) {
isPrime[j] = false;
}
}
}
}
int main() {
sieve();
int q;
cin >> q;
while (q--) {
int n;
cin >> n;
for (int i = n - 1; i >= 2; i--) {
if (isPrime[i]) {
cout << i << endl;
break;
}
}
}
return 0;
}
这里空空如也
有帮助,赞一个