约数之和(数学)

文章目录

  • Question
  • Ideas
  • Code

Question

给定 n 个正整数 ai,请你输出这些数的乘积的约数之和,答案对 109+7 取模。

输入格式
第一行包含整数 n。

接下来 n 行,每行包含一个整数 ai。

输出格式
输出一个整数,表示所给正整数的乘积的约数之和,答案需对 109+7 取模。

数据范围
1≤n≤100,
1≤ai≤2×109
输入样例:
3
2
6
8
输出样例:
252

Ideas

先分解质因数 后根据公式求

Code

# 约数之和 
n = int(input())
dic = dict()mod = int(1e9+7)
# 分解质因数
def get_divide(n):for i in range(2,int(n**0.5)+1):if n % i == 0:s = 0while n % i == 0:n //= is += 1if i not in dic:dic[i] = selse:dic[i] += sif n > 1:if n not in dic:dic[n] = 1else:dic[n] += 1for i in range(n):x = int(input())get_divide(x)
res = 1for i,v in dic.items():s = 0for j in range(v+1):s += i**jres *= s % modprint(res%mod)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部