描述
數字可以被視為其因數的乘積, 例如,
8 = 2 x 2 x 2;
= 2 x 4,
撰寫一個函式,可以輸入整數n并回傳其因子的所有可能組合,
說明
您可以假設n總是正數,
因數應大于1且小于n,
樣例
- 樣例1
輸入: 12
輸出:
[
[2, 6],
[2, 2, 3],
[3, 4]
]
解釋:
2*6 = 12
2*2*3 = 12
3*4 = 12
- 樣例2
輸入: 32
輸出:
[
[2, 16],
[2, 2, 8],
[2, 2, 2, 4],
[2, 2, 2, 2, 2],
[2, 4, 4],
[4, 8]
]
解釋:
2*16=32
2*2*8=32
2*2*2*4=32
2*2*2*2*2=32
2*4*4=32
4*8=32
決議
class Solution:
def dfs(self, n, subset, start, result):
while start * start <= n:
if n % start == 0:
result.append(subset + [start, n//start])
self.dfs(n//start, subset + [start], start, result)
start += 1
return result
def getFactors(self, n):
result = []
self.dfs(n, [], 2, result)
return result
運行結果

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/80511.html
標籤:其他
