質問<343>2000/10/21
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=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のみでした。……(答)