描述
两个质数的和是S,它们的积最大是多少?
输入
一个不大于10000的正整数S,为两个质数的和。输出
一个整数,为两个质数的最大乘积。数据保证有解。
#include <bits/stdc++.h>
using namespace std;
bool prime(int x){
if(x<2)return false;
int t=sqrt(x);
for(int i=2;i<x;i++)
if(x%i==0)return false;
return true;
}
int main(){
int s,x,y,maxx=0;
cin>>s;
for(int i=2;i<=s-2;i++)
if(prime(i) && prime(s-i)){
if(i*(s-i)>maxx)maxx=i*(s-i);
}
printf("%d",maxx);
return 0;
}