#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