Excel VBA 数学教室ではアフィリエイトプログラムを利用して商品を紹介しています。

σ(n):全ての約数のべき乗を足し加える関数

約数関数の定義

【定義D2】ある自然数 n について、全ての約数のべき乗を足し加えたものを約数関数(divisor function)と定義する:
σk(n)=d|ndk=d12+d22+

べき関数 f(n)=nk
f(ab)=(ab)k=akbk=f(a)f(b)
という関係を満たすので乗法的関数です。したがって前回記事の定理D2

f(n) が乗法的関数 g(n)=d|nf(d) も乗法的関数

によって、約数関数もまた乗法的関数であることがわかります。 

約数の個数

σk(n) の定義において k=0 とすると

σ0(n)=d|n1

となり、これは約数を 1 個、2 個と数えることを意味します。つまり σ0(n) は約数の個数を表す関数です。たとえば 12 の約数は
{1,2,3,4,6,12}
6 個なので、σ0(12)=6 となります。もし n がある1つの素数 p のべき乗 n=pa(aZ) であるならば、その約数は
{1,p,p2,,pa}
a+1 個となるので、σ0(pa)=a+1 となります。そこで次の定理が成り立ちます。

【定理D3】ある自然数 n
n=p1a1p2a2(a1,a2,Z)のように素因数分解されるとき、約数の個数は
σ0(n)=(a1+1)(a2+1)で与えられる。

たとえば 12 を素因数分解すると 12=2231 となるので、
σ0(12)=(2+1)(1+1)=6
となります。もっと大きな数で試してみましょう。たとえば
29400=23315272
なので、約数の個数は
σ0(29400)=(3+1)(1+1)(2+1)(2+1)=72
となります。

約数の和

約数関数 σk(n)=d|ndk において k=1 とすると
σ1(n)=d|nd=d1+d2+
となり、これは約数の和を表す式です。たとえば n=10 の約数を並べると
{1,2,5,10}
なので、その総和は
σ1(n)=1+2+5+10=18
となります。もっと大きな数になると約数を全部並べるのは大変なので、素因数分解を利用して総和を求めます。仮に n がある1つの素数 p のべき乗 n=pa(aZ) で表されるとき、その約数は
{1,p,p2,,pa}
a+1 個となるので、その総和は等比級数の公式を用いて
σ1(pa)=1+p+p2++pa=pa+11p1
というように求められます。

【定理D4】自然数 np1a1p2a2 のように素因数分解されるとき、その約数の総和は
σ1(n)=p1a1+11p11p2a2+11p21で与えられる。

[証明] 約数関数は 乗法的関数 なので、
σ1(ab)=σ1(a)σ1(b)
が成り立ちます。よって
σ1(n)=σ1(p1a1)σ1(p2a2)=p1a1+11p11p2a2+11p21
となります。(証明終)

【おすすめ記事】 ≫ Excel で約数表を作成する

 

完全数と友愛数

上の公式を 28 という数字に適用してみます。28=2271 なので、28 の約数の総和は
σ1(28)=2312172171=56
となります。この値から自身の数 28 を引くと 28 となって、ちょうど自身に等しい値となります。一般に「自身を除いた約数の和が自身に等しくなるような数」のことを完全数とよびます。その定義を約数関数を用いて表すと
n=σ1(n)nσ1(n)=2n
となります。また「自身を除いた約数の和が互いに等しくなる数」、すなわち
{σ1(a)a=bσ1(b)b=a
が成り立つような 2 数のことを友愛数(親和数)とよびます。上の定義から σ1(a)=σ1(b) が成り立つので、友愛数とは σ1(n) が互いに等しくなるような n と言い換えることもできます。

完全平方数に関する定理

約数関数 σk(n)=d|ndk において k=2 とおくと
σ2(n)=d|ndk=d12+d22+
となり、これは約数の 2 乗和(平方和)を表す式となります。ある自然数が素数 p を用いて n=pa の形で表されるとき、その約数を並べると
{1,p,p2,,pa}
a+1 個であり、それぞれを 2 乗すると
{1,p2,p4,,p2a}
となるので、等比級数の公式を使って足し合わせると、
σ2(pa)=1+p2+p4++p2a=p2(a+1)1p21
となります。したがって np1a1p2a2 のように素因数分解されるとき、その約数の総和は
σ1(n)=p12a1+21p121p22a2+21p221
で与えられます。約数和と約数の 2 乗和、および完全平方数の間には次のような定理が成り立ちます。

【定理D5】ある自然数 n が完全平方数であるとき、
σ1(n)|σ2(n)が成り立つ。

[証明]
n は平方数なので素数 p を用いて n=p2a と書けます。
等比級数の公式を用いて σ1(n),σ2(n) を計算すると
σ1(n)=p2(a+1)1p21σ2(n)=p2(2a+1)1p21=(p2a+1+1)(p2a+11)(p+1)(p1)
となるので、
σ2(n)σ1(n)=p2(a+1)+1p+1
p2(a+1)+1p=1 を因子にもつので p+1 で割り切れます。したがって σ2(n)/σ1(n) は整数であり、σ2(n)σ1(n) で割り切れます。(証明終)

簡単な例で定理を試してみます。n=9 とすると
σ1(9)=1+3+9=13,σ2(9)=12+32+92=91
なので、σ2(9)/σ1(9)=7 となって確かに割り切れます。

エクセルや数学に関するコメントをお寄せください