质数的和与积
题目描述
两个质数的和是S,它们的积最大是多少?
输入格式
一个不大于10000的正整数S,为两个质数的和。
输出格式
一个整数,为两个质数的最大乘积。数据保证有解。
输入输出样列
输入样例1:复制
50
输出样例1:复制
589
【耗时限制】1000ms 【内存限制】64MB
#include <iostream>
#include <cmath>
using namespace std;
bool isprime(int x)
{
if (x < 2)
return false;
int n = static_cast<int>(sqrt(x));
for (int i = 2; i <= n; i++)
if (x % i == 0)
return false;
return true;
}
int main()
{
int s, r = 0;
cin >> s;
for (int i = 2; i < s - 2; i++)
{
int j = s - i;
if (isprime(i) && isprime(j))
{
int k = i * j;
if (k > r)
r = k;
}
}
cout << r;
return 0;
}