【问题描述】
已知三个素数的和为 n ,正整数 n 由键盘输入,计算并输出这三个素数乘积的最大值。
【代码展示】
# include<iostream>
using namespace std;
int sushu(int x){
for(int i=2;i<=x/2;i++){
// 如果是合数,返回0;
if(x%i==0){
return 0;
}
}
return x; // 返回素数;
}
int main(){
int n,s,a[500],count=0,max=0;
cin >> n;
// 找到所有的素数,并保存在数组a里;
for(int j=2;j<n;j++){
if(sushu(j)){
a[count] = sushu(j);
cout << a[count] << " ";
count++;
}
}
// 遍历数组,找到和等于n-2的2个素数;
for(int k=0;k<count-2;k++){
for(int k2=k+1;k2<count-1;k2++){
for(int k3=k2+1;k3<count;k3++){
if(a[k]+a[k2]+a[k3]==n){
s=a[k]*a[k2]*a[k3];
if(s>max){
max=s;
}
}
}
}
}
cout << max << endl;
return 0;
}
原文地址:https://www.cnblogs.com/dongks/p/10306345.html