2192: 质数的和与积

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:8 解决:5

题目描述

两个质数的和是S,它们的积最大是多少?

输入

一个不大于10000的正整数S,为两个质数的和。

输出

一个整数,为两个质数的最大乘积。数据保证有解。

样例输入 复制

50

样例输出 复制

589

提示

#include<bits/stdc++.h>
using namespace std;
bool isPrime(int x) {
	if (x==1 || x==0) return 0;
	for (int i=2;i*i<=x;i++) {
		if (x%i==0) return 0;
	}
	return 1;
}
int s,ans=0;
int main(){
    cin>>s;
    for (int i=2;i<=s/2;i++) {
    	if (isPrime(i)&&isPrime(s-i)) {
    		if (i*(s-i)>ans) ans=i*(s-i);
		}
	}
	cout<<ans;
	return 0;
}