質問<343>
「「完全数について」」
日付 2000/10/21
質問者 アダッチ


10以上100以下の完全数を答えよ。

お返事(武田)
日付 2000/10/22
回答者 武田


自然数nが「完全数」とは、n以外のnの約数の和がnとなる数である。
例えば、
6=1+2+3
28=1+2+4+7+14
……
p=2p-1 が素数ならば、2p-1・(2p-1)は完全数であると
ユークリッド(B.C.330?-275?)が「幾何学原論」の中で
証明している。
pの形をした素数をメルセンヌ数という。
メルセンヌ(1588-1647)が興味を持ち深く研究したことによる。

このあと、フェルマー(1601-1665)がMpを割る素数は
2pk+1の形に限ることを発見している。
(以上は、日本評論社発行「数学100の問題」(数学セミナー1984増刊
p.88より抜粋)

これにもとづいてn88basicでプログラムを作ってみました。
**************************************************
10 cls
20 for p=1 to 100
30 mp=\(2^{p}\)-1
40 for k=1 to mp
50 a=2*p*k+1
60 if m\(\frac{p}{a}\)<1 then goto 130
70 if m\(\frac{p}{a}\)-int(m\(\frac{p}{a}\))=0 then goto 90
80 next k
90 b=m\(\frac{p}{a}\):print mp;"=";a;"x";b
100 kanzensuu=mp*(2^(p-1))
110 print kanzensuu
120 print
130 for t=1 to 5000:next t
140 next p
150 end
**************************************************
実行すると、
①Mpのとき、完全数6(※上のプログラムでは出てきません。)
           6=1+2+3
②Mp=7のとき、完全数28
          28=1+2+4+7+14
③Mp=31のとき、完全数496
         496=1+2+4+8+16+31+62+124+248
④Mp=127のとき、完全数8128
        8128=1+2+4+8+16+32+64+127
             +254+508+1016+2032+4064
⑤Mp=8191のとき、完全数33550336
⑥Mp=131071のとき、完全数8589869056
⑦Mp=524287のとき、完全数137438691328
……
以下大きすぎるのでここまでとします。
質問の「10以上100以下の完全数」は、28のみでした。……(答)