#51863: python解


bob981115@gmail.com (Bob)

學校 : 國立武陵高級中學
編號 : 312562
來源 : [101.12.128.235]
最後登入時間 :
2025-08-31 18:27:16

查表法

#   a740. 质因数之和
import sys
numbers = list(map(int, sys.stdin.read().split()))
max_num = max(numbers)
is_prime = [True] * 44750
is_prime[0] = False
is_prime[1] = False
max_sqrt = int(max_num ** 0.5) + 1
for i in range(2, max_sqrt+1):
    if is_prime[i]:
        for j in range(i**2, max_sqrt+1, i):
            is_prime[j] = False
for num in numbers:
    prime_num_total = 0
    for i in range(2, int(num ** 0.5)+1):
        if is_prime[i]:
            while num % i == 0:
                num //= i
                prime_num_total += i
    if num > 1:
        prime_num_total += num
    print(prime_num_total)