【发布时间】:2009-06-18 01:39:13
【问题描述】:
我想知道列出一个数字的所有整数因子的最佳方法,给定一个包含素因子及其指数的字典。
例如,如果我们有 {2:3, 3:2, 5:1} (2^3 * 3^2 * 5 = 360)
然后我可以写:
for i in range(4):
for j in range(3):
for k in range(1):
print 2**i * 3**j * 5**k
但是在这里我有 3 个可怕的 for 循环。给定任何分解作为字典对象参数,是否可以将其抽象为一个函数?
【问题讨论】:
-
我的数学很生疏,什么原理可以让你从质因数中推导出所有因数?
-
这可能源于算术基本定理,因为任何非素因数都有一个独特的素因数分解,它包含在较大数的素数分解中。