« Project Euler - Problem 44 : 3.8s (Ruby 1.9) | トップページ | Project Euler - Problem 46 »

2009年8月 2日 (日)

Project Euler - Problem 45

問題はこちらをご覧ください。


n = 2 * m - 1 の時、Tn = Hm となるので、六角数は必ず三角数になります。

このことから、この問題では「五角数かつ六角数」となる数を求めればいいことになります。

class Integer # * 五角数であれば、何番目かを返す。 def pentagon? x = ((1 + 24 * self) ** 0.5 + 1) / 6.0 if x == x.to_i then return x.to_i else return false end end # * 六角数を求める。 def hexagon return 2 * self * self - self end end 144.upto(1/0.0) do |i| h = i.hexagon if h.pentagon? puts h exit end end

« Project Euler - Problem 44 : 3.8s (Ruby 1.9) | トップページ | Project Euler - Problem 46 »

Project Euler」カテゴリの記事

Ruby」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/112020/45812512

この記事へのトラックバック一覧です: Project Euler - Problem 45:

« Project Euler - Problem 44 : 3.8s (Ruby 1.9) | トップページ | Project Euler - Problem 46 »

2016年7月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
フォト

最近のトラックバック

無料ブログはココログ