分解质因数(python)

#寻找质因数
def digui(num):
    for i in range(2,int(1+num/2)):
        if num % i == 0:
			print('%d * '%i,end = '')
            num = int(num / i)
            digui(num)
            if zspd(num) !=1:
                print('%d'%num)
            break
#判断一个数是否是质数
def zspd(shu):
    s = 0
    for i in range(2, int(1+shu/2)):
        if shu % i == 0:
            s = 1
            break
    return s
num = eval(input('请输入一个数:'))
if zspd(num) != 1 and num != 1:
    print('%d = 1 * %d'%(num,num))
else:
    print('%d = '%num,end = '')
    digui(num)

运行结果

请输入一个数:895648
895648 = 2 * 2 * 2 * 2 * 2 * 13 * 2153
请输入一个数:128
128 = 2 * 2 * 2 * 2 * 2 * 2 * 2
请输入一个数:125
125 = 5 * 5 * 5
请输入一个数:54576421
54576421 = 1 * 54576421
请输入一个数:7454317
7454317 = 13 * 573409
请输入一个数:100
100 = 2 * 2 * 5 * 5
请输入一个数:214
214 = 2 * 107

你可能感兴趣的:(分解质因数(python))