据说这俩是小学奥数内容?完了我菜成一团没上过小学
本文只研究正整数(A)的约数个数和约数和。首先对(A)分解质因数
[A=prod_i^n p_i^{a_i} (p_i是质数)
]
约数个数定理
先看结论
[num=sum_i^n (a_i+1)
]
考虑对于(A)的任意一个约数(a),都显然存在唯一的数列(a')使
[a=prod_i^n p_i^{a'_i} (0 leq a'_i leq a_i)
]
由唯一分解定理得,每一个符合条件的数列(a')都对应(A)的一个约数,反之亦然。由乘法原理得共有((a_1+1)*(a_2+1)...*(a_n+1))种数列(a'),得证。
约数和定理
同样先看结论:
[sum=prod_{i=1}^nsum_{j=0}^{a_i}p_i^j
]
首先考虑(n=1)的情况,即(A=p^a (p是质数)),显然约数和是(sum_{i=0}^{a}p^i)
当(n>1),如果已知了(x=A/{p_n^{a_n}})的约数和(sum'),如何求(A)的约数和(sum)呢?
显然,给每个(x)的约数(x')均乘上每一个(p_n^i (0 leq i leq a_n)),就构成了(A)的约数集合。那么就得到
[sum=sum left(x'*sum _{i=0}^{a_n}p_n^i
ight)
]
由乘法分配律得到
[sum=sum'*sum _{i=0}^{a_n}p_n^i
]
又由当(n=1)时(sum=sum_{i=0}^{a}p^i)递推得到最终的结论。