数任:约数

约数个数定理

对一个大于1的整数n,n可以分解质因数为

i=1piai=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

练习:

97. 约数之和 - AcWing题库

 

871. 约数之和 - AcWing题库

867. 分解质因数 - AcWing题库

posted @ 2023-03-15 11:40  清初  阅读(46)  评论(0)    收藏  举报