- 质数的和与积
ok
- @ 2026-1-7 19:38:40
#include <iostream>
#include <cmath>
using namespace std;
// 判断一个数是否为质数的函数
bool isPrime(int num) {
// 小于2的数不是质数
if (num < 2) return false;
// 2是唯一的偶质数
if (num == 2) return true;
// 偶数(除了2)不是质数
if (num % 2 == 0) return false;
// 只需检查到平方根即可,减少计算量
for (int i = 3; i <= sqrt(num); i += 2) {
if (num % i == 0) {
return false;
}
}
return true;
}
int main() {
int S;
cin >> S;
// 从中间开始找,保证乘积最大
for (int i = S / 2; i >= 2; --i) {
int j = S - i;
// 检查两个数是否都是质数
if (isPrime(i) && isPrime(j)) {
cout << i * j << endl;
// 找到后直接退出,无需继续
return 0;
}
}
return 0;
}
0 comments
No comments so far...
Information
- ID
- 675
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 2
- Tags
- (None)
- # Submissions
- 105
- Accepted
- 68
- Uploaded By