用Python实现将一个正整数分解素因数,以素因数的指数权重的形式来表达。例如
表示成元组字典的形式
{2: 2, 3: 2, 11: 1, 17: 2}
先定义素数池:
primePool = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,79,83,89,97,101,103,107,109,113]
实现:
def factorizationToPrime(num):
if num == 1:
return {}
pDict = {}#素因数字典
d = num#缩倍值
p = 2#轮循因数
sq = math.sqrt(num)
for m in primePool:
p = m
if p>sq:
break
w