正整數分解演算法

2021-08-25 10:09:55 字數 648 閱讀 8233

問題:將以正整數n表示成一系列正整數之和. n=n1+n2+n3+...+nk (n1>=n2>=n3>=nk>=1, k>=1)這就是正整數n的乙個劃分,正整數n不同的劃分個數稱為正整數n的劃分數, 記作p(n)例如:6 有如下11種劃分則p(6)=116;5+1;4+2, 4+1+1;3+3, 3+2+1, 3+1+1+1;2+2+2, 2+2+1+1, 2+1+1+1+1;1+1+1+1+1+1;則求任意正整數的劃分數p(n).

1. c改編的

class int

public void output(int m)

}public static void main(string args)

}

code:

};public static void main(string args)

}結果如下:

1:1+1+1+1+1+1

2:2+1+1+1+1

3:3+1+1+1

4:2+2+1+1

5:4+1+1

6:3+2+1

7:5+1

8:2+2+2

9:4+2

10:3+3

這個**的特點是**行少,簡單。但是理解起來可能有點複雜。

正整數分解

程式整體思路 分解就是乙個數減1,這個數後面的數加1 一次分解之後 找到最後乙個比1大的元素座標,然後與上一次相比,如果座標發生了偏移,那麼會發生向後偏移,說明又開始有乙個數需要分解,這個時候需要增加乙個元素,該情況下其實就是新出現了2 此時這個座標是2所在的位置 將2分解完畢之後,再繼續找比1大的...

程式4 正整數分解質因數

題目 將乙個正整數分解質因數。例如 輸入90,列印出90 2 3 3 5。程式分析 對n進行分解質因數,應先找到乙個最小的質數k,然後按下述步驟完成 1 如果這個質數恰等於n,則說明分解質因數的過程已經結束,列印出即可。2 如果n k,但n能被k整除,則應列印出k的值,並用n除以k的商,作為新的正整...

將整數分解為連續正整數之和

將乙個整數 n 分解為連續正整數之和,如 15 可以分解為 15 1 2 3 4 5 15 4 5 6 15 7 8 計算從 i 開始連續 k 個數之和 sum k 2 i k 1 2 當 sum n 時,有 k k 2 i 1 k 2 n 0 變形為 i 2 n k k 1 2。在 2,2 n k...