本文主要是介绍LintCode 1308. 因子组合 Python算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
描述
数字可以被视为其因数的乘积。 例如,
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 += 1return resultdef getFactors(self, n):result = []self.dfs(n, [], 2, result)return result
运行结果
这篇关于LintCode 1308. 因子组合 Python算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!