数任:约数
约数个数定理
对一个大于1的整数n,n可以分解质因数为
∏i=1k piai=p1a1⋅p2a2⋅⋅⋅pkak
则n的正约数的个数就是f(n)=∏ki=1ai+1=(a1+1)(a2+1)⋅⋅⋅(ak+1)
这个很好证明,因为p1a1 的约数有p01,p12,p13…p1a1,共(a1+1)个,同理pkak的约数有(ak+1)个
约数定理
n的(a1+1)(a2+1)⋅⋅⋅(ak+1)个正约数的和为:
(p10+p11+…+p1a1)(p20+p21+…p2a2)…(pk0+pk1+…pkak)
例如42=24=16
约数个数:4+1 = 5;
约数和:1+2 + 4 + 8 + 16 + 32;
所以当k为偶数时
p0+p1+…+pk/2−1+pk/2+pk/2+1+…+pk−1
即
p0+p1+…+pk/2−1+pk/2∗(p0+p1+…+pk/2−1)
所以sum(p,k/2)+pk/2∗sum(p,k/2)
奇数则
sum(p,k−1)+pk−1
练习: