两个质数的和是S,他们的积最大是多少?
收起
输入
一个不大于10000的正整数S,为两个质数的和。
输出
一个整数,为两个质数的最大乘积。数据保证有解。
输入样例
21
输出样例
38
#include <bits/stdc++.h>
using namespace std;
bool isPrime(int number) {
if(number == 2)
return true;
for (int i = 2; i * i <= number; i++)
if (number % i == 0)
return false;
return true;
}
int main(void)
{
int n;
cin >> n;
unsigned long long ret = 0;
vector<bool> nums(n+1,false);
for(int i = 2; i <= n; i++)
{
if(isPrime(i) && isPrime(n-i))
{
ret = max(ret, (unsigned long long)i * (unsigned long long)(n-i));
}
}
cout << ret << endl;
return 0;
}