最優自然數分解問題

2021-06-22 09:04:37 字數 769 閱讀 8550

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...