两个质数的和是S,它们的积最大是多少?
输入格式:
一个不大于10000的正整数S,为两个质数的和。
输出格式:
一个整数,为两个质数的最大乘积。数据保证有解。
输入样例:
8
输出样例:
15
#include<bits/stdc++.h>
using namespace std;
int find(int n){
for(int i = 2;i < n-1;i++){
if(n % i == 0) return 0;
}
return 1;
}
int main()
{
int n;
cin>>n;
int s=0,max=0,d,b,a[n];
for(int i=2;i<=n;i++){
if(find(i))a[s++]=i;
}
// for(int i=0;i<s;i++)cout<<a[i]<<" ";
for(int i=0;i<s;i++){
for(int j=i;j<s;j++){
d=a[i]+a[j];
if(d==n){
b=a[i]*a[j];
if(b>max)max=b;
}
}
}
cout<<max;
}