python分解质因数

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

img


可不可以帮帮忙看一下哪里有问题呀😭

def count_prime(n):
    a = []
    i = 2
    while n > 1:
        if n % i == 0:
            a.append(i)
            n = n // i
        else:
            i += 1
    return 0 if len(a) <= 1 else len(a)

n = int(input(">>>"))
x = count_prime(n)
print(x)

你这个代码的结果就有问题,python的for循环不是这么用的