0
点赞
收藏
分享

微信扫一扫

约数个数(数学)


文章目录

  • ​​Question​​
  • ​​Ideas​​
  • ​​Code​​

Question

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

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

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

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

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

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 = 0
while n % i == 0:
n //= i
s += 1
if i not in dic:
dic[i] = s
else:
dic[i] += s
if n > 1:
if n not in dic:
dic[n] = 1
else:
dic[n] += 1

for i in range(n):
x = int(input())
get_divide(x)
res = 1
for i in dic.values():
res *= (i + 1) % mod
print(res%mod)


举报

相关推荐

0 条评论