数学で遊ぶ

完全数入門! 数の面白シリーズ!

今回は「完全数」という数についてお話をしたいと思います。
完全数の定義からプログラムで完全数を判定するものも作ってみたいと思います。

完全数とは

完全数 (Perfect Number)

自身以外の正の約数の和が、ちょうど自分自身に等しい数のこと

完全数は「万物は数なり」と考えたピタゴラスが名付けた数になります。
完全数は例えば、6,28,496,8128などがあります。

ここでは6と496が完全数であることを確かめてみましょう!
(1) 6が完全数であること

6の自分自身を除く正の約数は1,2,3です。
これらの和をとると1+2+3=6なので、完全数になります。

(2)496が完全数であること

496の自分自身を除く正の約数は1,2,4,8,16,31,62,124,248です。
これらの和をとると1+2+4+8+16+31+62+124+248=496なので、完全数になります。

完全数の性質

紀元前3世紀、ユークリッドは完全数について次の性質を発見しました。

命題1

2^n-1が素数ならば、2^{n-1}(2^n-1)は完全数である。

ちなみに、2^n-1で表される数をメルセンヌ数といい、それが素数である場合はメルセンヌ素数といいます。

例えば、次のように完全数を計算することができます。
(1) n=2の時
2^2-1=3なので命題1が使えて、
2^1(2^2-1) = 2 \times 3 = 6は完全数。

(2) n=7の時
2^7-1 = 128-1=127は素数なので命題1が使えて、
2^6 (2^7-1) = 64 \times 127 = 8128は完全数。

命題1では偶数の完全数のみを作ることができます。
逆に偶数の完全数は2^{n-1}(2^n-1)の形をしているかどうかが気になります。
これはオイラーが肯定的に解決しています。

命題2

偶数の完全数は、2^n-1が素数となるようなn \in \mathbb Nについて、2^{n-1}(2^n-1)という形で表される。

完全数については、以下のようなすぐに思いつくような単純な問題でさえ未解決です。

  • 完全数は無限に存在するか?
  • 奇数の完全数は存在するか?

完全数がどんな数なのか、今回は理論的にご紹介しました。
次回はこの“完全”な性質を、プログラミングして実際に確かめてみましょう!

ABOUT ME
MSK
数学・プログラミング・ゲーム制作が大好きな30代エンジニア。 趣味でUnityやC言語を使って数学を可視化したり、小さなアプリを作ったりしています。 教育・学びの楽しさにも関心があります。