python分解质因数

任何一个合数都可以表示为若干个质数的乘积。例如:
6=2×3
8=2×2×2
12=2×2×3
像这种把一个合数用多个质数连乘积形式表示出来的操作称为分解质因数。
现要求写一个Python函数count_prime(n)来计算一个给定的合数n分解质因数的结果当中所有质数的个数,如果n不是合数,则返回0。


 
num = input("请输入一个大于2的数:")
num = int(num)
 
def prime(num):
    l = [1]
    i = 2
    while i < num + 1:
        if num % i == 0:
            l.append(i)
            num /= i
        else:
            i += 1
    return l
 
l = prime(num)
print(l)

img


要统计个数直接len(l)即可

def count_prime(n):
    f = []
    for j in range(1,n//2+1):
        for i in range(2, n):
            if n % i == 0:
                f.append(i)
                n = n//i
                break
    if len(f) == 0:
        print("这是一个质数,请重新带入合数")
    else:
        f.append(n)
        f.sort()
        print('%d=%d'% (n,f[0]), end='')
        for i in range(1,len(f)):
            print('*%d'%f[i] ,end='')
        print("\n个数:",len(f))








img

如有帮助,
希望点一下下采纳