【問題描述】 已知三個素數的和為 n ,正整數 n 由鍵盤輸入,計算並輸出這三個素數乘積的最大值。 【代碼展示】 # include<iostream>using namespace std;int sushu(int x){ for(int i=2;i<=x/2;i++){ // 如果是合數,返回 ...
【問題描述】
已知三個素數的和為 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;
}