链接:https://www.nowcoder.com/questionTerminal/20426b85f7fc4ba8b0844cc04807fbd9
来源:牛客网
求正整数N(N>1)的质因数的个数。 相同的质因数需要重复计算。如120=2*2*2*3*5,共有5个质因数。
输入描述:
可能有多组测试数据,每组测试数据的输入是一个正整数N,(1<N<10^9)。
输出描述:
对于每组数据,输出N的质因数的个数。
示例1
输入
120
输出
5
import math
def judge(num):
'''
判断是否是质数
:param num:
:return:
'''
if num==2 or num==3:
return True
for i in range(2,math.ceil(num**0.5)):
if num%i==0:
return False
return True
def solution(num):
'''
求所有质因数
:param num:
:return:
'''
res=[]
while num>1:
for i in range(2,math.ceil(num**0.5)):
if num%i==0 and judge(i):
res.append(i)
num//=i
break
# for和else搭配,for中循环完全运行完(不算break),else才运行
else:
res.append(num)
break
return res
if __name__=='__main__':
while True:
try:
num=int(input().strip())
res=solution(num)
print(len(res))
except:
break