約数を洗い出す
整数nを割り切る全ての約数を洗い出して表示します。
前田稔(Maeda Minoru)の超初心者のプログラム入門


プログラムの説明
- コンソールから入力した整数nを割り切る全ての約数を洗い出して表示します。
例えばnが12のときは、次のようになります。
またnが20のときは、次のようになります。
- 繰り返し命令(for)は、1から初めてn/2までループすることになるでしょう。
また割り切れるか否かを調べるには、剰余を求める演算子(%)を使います。

【演習】
- 寺尾あきら主演の映画「博士の愛した数式」で整数論に関係する面白い話が取り上げられていました。
その一部を紹介しながらプログラミングの説明をします。
- 完全数を求めて表示します。
「博士の愛した数式」でも紹介されています。
- 完全数とは「自分自身を除く約数の和が元の数と等しい」数のことです。
【例】
28の約数は 1,2,4,7,14 で
1+2+4+7+14=28
|
- 10000以下の完全数を求めて表示して下さい。
完全数は意外に少なく1000以下では、3個しか見つかっていません。
10000以下でも、4個ぐらいでしょうか。
- 完全数には面白い性質があって、1から始まる整数を順に加えると完全数になります。
見つけた完全数が、この規則に当てはまる事を確認するプログラムを作成して下さい。
- 余談ですが、25番目の完全数は、1987年11月に発見されました。
アメリカの2人の高校生、ローラ・ニッケルとカート・ノルの2人は、大型コンピュータを1週間使って、この数に到達しました。
なんと、13066桁の数だったのです。
当時高価な大型コンピュータ(数百億円)を1週間も使って、お咎めはなかったのでしょうか?。 (^_^;)
偶数の完全数を作り出す方法は、詳細は省きますがギリシャ時代に考え出されていました。
しかし、奇数の完全数が存在するかどうかは、現在でもわかっていません。
- 「博士の愛した数式」にも登場する友愛数(友の数)を求めて表示します。
- 友愛数とは「約数の和がお互いの数になる」数のことです。
【例】
220の約数は
1,2,4,5,10,11,20,22,44,55,110 で
その合計は 284 になります。
|
284の約数は
1+2+4+71+142 で
その合計は 220 です。
|
従って 220と284は友愛数になります。
- 次に小さい友愛数は、パガニーニが16歳のときに見つけています。
完全数は意外に少ないのですが、友愛数は結構存在するようです。
- 友愛数を見つけるプログラムを作成して下さい。

前田稔(Maeda Minoru)の超初心者のプログラム入門

※・