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


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


お返事2000/10/22
from=武田


自然数nが「完全数」とは、n以外のnの約数の和がnとなる数である。
例えば、
6=1+2+3
28=1+2+4+7+14
……
Mp=2p-1 が素数ならば、2p-1・(2p-1)は完全数であると
ユークリッド(B.C.330?-275?)が「幾何学原論」の中で
証明している。
Mpの形をした素数をメルセンヌ数という。
メルセンヌ(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 mp/a<1 then goto 130
70         if mp/a-int(mp/a)=0 then goto 90
80     next k
90 b=mp/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のみでした。……(答)