1. 程式人生 > 其它 >演算法題 約數之和 (Python)

演算法題 約數之和 (Python)

技術標籤:Python演算法c++演算法pythonjava動態規劃

題目

給定n個正整數aiai,請你輸出這些數的乘積的約數之和,答案對109+7取模。

輸入格式

第一行包含整數n。

接下來n行,每行包含一個整數aiai。

輸出格式

輸出一個整數,表示所給正整數的乘積的約數之和,答案需對109+7取模。

資料範圍

1≤n≤100
1≤ai≤2∗10^9

輸入樣例:

3
2
6
8

輸出樣例:

252

程式碼

約數之和:(p1^0+p1^1...)***(pn^0 + pn^1 +....)捕獲21.PNG

from collections import defaultdict
n = int(input())
mod = int(1e9+7)
primes = defaultdict(int)

def divid(a):
    for i in range(2, int(a**0.5)+1):
        while a % i == 0:
            a //= i
            primes[i] += 1
    if a  > 1: primes[a] += 1


for _ in range(n):
    a = int(input())
    divid(a)

res = 1
for key, value in primes.items():
    t = 1

    for i in range(value):
        t = (t*key+1) % mod
    res = res*t % mod
    
print(res)