本质上是求质因数分解之和。

def breakdown(n):
    if n == 1:  # 处理n=1的边界情况
        return []
    factor = []
    # 处理因数2(单独处理偶数,减少后续循环次数)
    while n % 2 == 0:
        factor.append(2)
        n = n // 2
    # 处理奇数因数,每次除尽当前因数,且i只遍历奇数
    i = 3
    while i * i <= n:
        while n % i == 0:  # 循环除尽当前因数,避免重复检查
            factor.append(i)
            n = n // i
        i += 2  # 跳过偶数,减少一半循环次数
    # 剩余的大于2的质因数
    if n > 1:
        factor.append(n)
    return factor

n = int(input())
print(sum(breakdown(n)))