description
問題描述:設n是乙個正整數。
(1)現在將n分解為若干個互不相同的自然數之和,且使這些自然數的乘積最大。
(2)現在將n分解為若干個自然數之和,且使這些自然數的乘積最大。
程式設計任務:對於給定的正整數n,程式設計計算問題(1)和(2)的最優分解的最大乘積。
注意:這裡的自然數不含0但包含1。
特別地,當整數n無法分解為若干互不相同的加數時,即自身視為單獨的乙個加數,比如輸入2,問題(1)的解輸出為2。
而如果整數n可以分解為若干互不相同的加數時,不考慮自身為單獨加數的情況,比如4,問題(1)的解輸出為3,而非4。
輸入格式
只有乙個正整數n(1<=n<=100)。
輸出格式
輸出待解問題(1)和(2)的最大乘積,中間空格相連,這兩個數可能較大請用64位整數。
如,輸入n為10,若加數互不相同,則n=2+3+5,此時最大乘積為2*3*5=30。
若加數可相同,則n=2+2+3+3,此時最大乘積為2*2*3*3=36。
輸入樣例
10輸出樣例
30 36
#include__int64 fun1(__int64 n)
flag=i;
if(n!=0) }
i=flag;
for(j=0;j0)
return c;
}__int64 fun2(__int64 n)
__int64 main()
最優自然數分解問題
time limit 1000ms memory limit 65535k total submit 0 accepted 0 type coding program language g gcc vc 問題描述 設n是乙個正整數。1 現在將n分解為若干個互不相同的自然數之和,且使這些自然數的乘積最...
自然數積分解
題目描述 把自然數 分解為若干個自然數之積,輸出方案數。輸入描述 自然數n 1 n 2000000000 輸出描述 方案數。樣例輸入 20 樣例輸出 4 資料範圍及提示 20 可分為 204 52 10 2 2 5 優化前 源 include int n,ans 0 void solve int t...
自然數積分解
題目描述 現需要把自然數n分解為若干個自然數之積,輸出方案數。輸入描述 輸入乙個自然數n 1 n 2000000000 輸出描述 輸出乙個數,表示方案數。樣例輸入 20 樣例輸出 4 資料範圍及提示 樣例可分為 204 5 2 10 2 2 5 優化前 源 include int n,ans 0 v...