約数の個数と総和の求め方

素因数分解 n = p^e × q^f … から、約数の個数を (e+1)(f+1)…、総和を (1 + p + … + p^e)(1 + q + … + q^f)… で求めます。

約数をひとつずつ探さなくても、素因数分解さえ分かれば、約数の個数と総和は掛け算だけで求まります。nnn=pe×qf×n = p^e \times q^f \times \cdots と分解できるとします。

約数の個数 d(n)d(n) は、各素因数の指数に 1 を足して掛け合わせた値です。

d(n)=(e+1)(f+1)d(n) = (e+1)(f+1)\cdots

約数の総和 σ(n)\sigma(n) は、素因数ごとに 1 からそのべき乗までを足し、それらを掛け合わせた値です。

σ(n)=(1+p++pe)(1+q++qf)\sigma(n) = (1 + p + \cdots + p^e)(1 + q + \cdots + q^f)\cdots

個数の式は、約数を作る手順を考えると分かります。素因数 pp を「0 個から ee 個までのどれか」選び、qq についても同じように選ぶ。pp の選び方は e+1e + 1 通りで、その組み合わせが約数と 1 対 1 に対応します。

n=36n = 36 とします。36=22×3236 = 2^2 \times 3^2 なので

d(36)=(2+1)(2+1)=9d(36) = (2+1)(2+1) = 9
σ(36)=(1+2+4)(1+3+9)=7×13=91\sigma(36) = (1 + 2 + 4)(1 + 3 + 9) = 7 \times 13 = 91

実際、36 の約数は 1、2、3、4、6、9、12、18、36 の 9 個で、すべて足すと 91 になります。

注意