世にも美しい数学入門

最近この本が気になっていて近いうちに読もうかとおもってます。
評判を調べているとはてなダイアリーを見付けました。このページによるとこの本には、

各桁の3乗を足すと元に戻るような1より大きい数字は何桁であろうと153,370,371
,407の他に無い

といった定理があるようです。(醜いらしいですが。)定理の証明とかはよくわからないのですがプログラムで調べてちゃえってことでちょっと書いてみました。

#!/usr/bin/env  ruby
#各桁の3乗を足すともとに戻る数は?
#2000を越えると元の数のほうが必ず大きくなるので調べる必要なし
def main
  for i in 2..2000 do
    digit_sum=0

    #各桁を配列に入れる
    digit=i.to_s.split(//)

    #各桁の3乗の合計
    digit.each{|elem|
      digit_sum += (elem.to_i) ** 3
    }
    
    #確認
    if i==digit_sum then
      p i
    end
  end

end

main

出力

153
370
371
407

おー確かに。本の本筋とは関係ないですが、こういうのも面白いですね。