Python 将一个正整数分解质因数。
例如:输入90,打印出90=2 * 3 * 3 * 5。
from functools import reduce
def test(num,l = []):
# 判断是否是素数标识符
a = True
for i in range(2,num):
if num%i == 0:
a = False
n = num//i
print(i,' : ',n)
l.append(i)
break
if a:
l.append(num)
print(num)
print(l)
return str(reduce(lambda x,y:x*y,l)) + ' = ' + ' * '.join([str(i) for i in l])
else:
return test(n,l)
a = test(666)
print(a)
输出
2 : 333
3 : 111
3 : 37
37
[2, 3, 3, 37]
666 = 2 * 3 * 3 * 37