Question
定义阶乘 n! = 1 × 2 × 3 × ··· × n。
请问 100! (100 的阶乘)有多少个约数。Idea
任意一个正整数 X 都可以表示成若干个质数乘积的形式,即 X = p1α1 ∗ p2α2 …… ∗ pkαk 约数个数 = (a1 + 1)(a2 + 1)……(ak + 1)
Code
def FactorialDivisor():
    p = [0 for i in range(101)]
    for i in range(2,101):
        n = i
        j = 2
        for j in range(2,int(n / j) + 1):
            while n % j == 0:
                p[j] += 1
                n = int(n / j)
        if n > 1:
            p[n] += 1
 
    ans = 1
    for i in range(2, 101):
        if p[i]:
            ans *= (p[i] + 1)
 
    print(ans)
FactorialDivisor()                
                










