天天看點

約數個數(數學)

文章目錄

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

Question

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

輸入格式

第一行包含整數 n。

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

輸出格式

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

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)      

繼續閱讀