【MT2126】 数字游戏

【MT2126】 数字游戏

  • 题目描述
  • 格式
  • 样例
  • 解析
  • 参考答案

题目描述

小码哥和小A正在完一个小游戏,小码哥先展示一个正整数n,如果小A可以写出k个正整数 x 1 . . . x k x_{1}...x_{k} x1...xk满足 ∏ i = 1 k ( x i + 1 ) = n {\textstyle\prod_{i=1}^{k}}(x_{i}+1)=n i=1k(xi+1)=n则他可以得到k分,小A的数学并不。所以请你写一个程序帮忙计算他最多可以得到多少分。

格式

输入格式:一行,一个正整数, n ∈ [ 2 , 1 ∗ 1 0 8 ] n\in[2,1*10^{8}] n[2,1108]
输出格式:一行,一个正整数。

样例

输入:12
输出:3

解析

本题的本质在于对输入n分解质因数,并计算质因数的个数之和。例如12可以分解为12=223,所以最多可以得3分。

参考答案


def solve(n):
    count=0
    i = 2
    while i*i<=n:
        while n%i==0:
            count+=1
            n=n//i
        i+=1
    if n!=1:
        count+=1
    return count

def main():
    n = int(input())
    ans = solve(n)
    print(ans)
    
    
if __name__ == '__main__':
    main();

你可能感兴趣的:(百度松果,游戏,算法)