演算法題 約數之和 (Python)
阿新 • • 發佈:2020-12-09
技術標籤: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 +....)
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)