10以上100以下の完全数を答えよ。
10以上100以下の完全数を答えよ。
自然数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 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=3のとき、完全数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のみでした。……(答)