Python 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

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

你可能感兴趣的:(Python,递归)