求正整数N(N>1)的质因数的个数。

题目:

相同的质因数需要重复计算。如120=2*2*2*3*5,共有5个质因数。

第一段代码比第二段复杂度要低,运行时间很快。第二段是没问题的,就是速度太慢了,平台上提交不过去的!

n = int(input())
res = 0
while n > 1:
    flag = 1
    t = int(n**0.5)     
    for i in range(2,t+1):
        if n % i == 0:  #求余
            n /= i   
            res += 1 
            flag = 0
            break
    if flag:  
        res += 1
        break
print(res)
n=int(input())
prime=int(2)
num=1
if n==prime:
    print(n)
else:
    while(n>prime):
        k=n%prime
        if(k==0):
            #print(prime)
            n=n/prime
            num+=1
        else:
            prime+=1
    print(num)
原文地址:https://www.cnblogs.com/zmh-980509/p/12499508.html