$\sigma(n)$を自然数$n$の約数の総和を与える関数とします。もし、$\sigma(n)=2n$となる場合には自然数$n$は完全数と呼ばれていました。それでは、$\sigma(n)=3n$となる自然数$n$が存在するかどうかをPythonを用いて調べてください。
テキストでも用いた約数の総和関数のPythonコードを使用します。
def sigma(n):
sum = 0 # これに約数を足していく
for d in range(1, n + 1): # 1とnの間の自然数が約数か確かめていく
if n % d == 0: # dがnの約数なら
sum += d # sumにdを加える
return sum##(実行結果) 120
##(実行結果) 672
このコードの実行すると, $120$と$672$が得られました。
今得られた$120$や$672$のように$\sigma(n)=3n$を満たす自然数$n$のことを3倍完全数と言います。 もっと一般に, 自然数$k$に対して, $\sigma(n)=kn$となる自然数$n$のことを$k$倍完全数または倍積完全数と言います。 2倍完全数のことは単に完全数と呼びます。