首页 > 试题广场 >

质因数的个数

[编程题]质因数的个数
  • 热度指数:50211 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
求正整数N(N>1)的质因数的个数。 相同的质因数需要重复计算。如120=2*2*2*3*5,共有5个质因数。

输入描述:
可能有多组测试数据,每组测试数据的输入是一个正整数N,(1<N<10^9)。


输出描述:
对于每组数据,输出N的质因数的个数。
示例1

输入

120

输出

5
while True:
    try:
        num = int(input())
        result = 0
        while num >2:
            for i in range(2,int(num**0.5)+1):
                if num % i == 0:
                    result+=1
                    num//=i
                    break
            else:          #这个表示for循环全跑完执行的,相当于此时num为质数
                result+=1
                break
        print(result)
    except Exception:
        break
编辑于 2018-10-11 17:05:08 回复(0)

python :

while True:
    try:
        a,res=int(input()),1
        count=2
        while count**2<a:
            while a%count==0:
                res+=1
                a=a/count
            count+=1
        print(res)
    except:
        break

上述代码有问题,经过@牛客3246208号 更正后:

a, res = int(input()), 0
count = 2



while count**2 <= a:
    while a % count == 0:
        res += 1
        a = a / count
    count += 1
    if a==1:
        break

if a>1:
    res+=1
print(res)
编辑于 2018-07-17 06:15:34 回复(2)

问题信息

难度:
2条回答 30580浏览

热门推荐

通过挑战的用户

查看代码