友愛数
先日テレビで放送されていた映画
『博士が愛した数式』を見ていたら
友愛数というものが出てきました。
この友愛数をVBAで求めてみました。
映画自体は良かったです。
記憶が80分しか持たない博士。
嫌なことは覚えなくて済むと思いきや、
毎朝、記憶が80分しかもたないことに
一人絶望していた。
といった対比がよかったです。
博士のヌボーとした表情に
とてもリアリティーを感じていたのですが、
映画『亡国のイージス』が数日後テレビで放映されていたので
見ていたら
博士役だった寺尾聰が出ていて同じ表情だったので
ちょっとがっかりしました。
さて、友愛数についての説明です。
2つの自然数m, nについて
mのm自身除いた約数の和がn
nのn自身除いた約数の和がmであるとき
mとnを友愛数と呼ぶ。
たとえば、
220 : 1+2+4+5+10+11+20+22+44+55+110 = 284
284 : 1+2+4+71+142 = 220
コードはこちら
Sub macro110108a() Sheets.Add |
macro110108a実行後のシート
10万まで調べるには結構時間が掛かります。
重複を避けるところでFind関数を使ったのですが、
Find関数は数字の検索をするのには向いていないのでしょうか?
たとえば、284という数が入っているセルは
"28"で検索に引っ掛かります。
文字列扱いです。
文字列にしても「完全一致検索」は
Find関数だけではできないようですね。
| 固定リンク
この記事へのコメントは終了しました。

コメント