ログイン
編集不可のページディスカッション情報添付ファイル
iz/競技プログラミング/Project Euler 045 Triangular, pentagonal, and hexagonal

MMA

http://projecteuler.net/problem=45

n(n+1)/2に n = 2n-1を代入すると n(2n-1)が得られる。 よってすべてのHexagonal numberはTriangle numberである。

テキトーな範囲のPentagonal numberとHexagonal numberを列挙して共通部分とったら答えが出た。

   1 #!/usr/bin/env ruby
   2 
   3 require 'set'
   4 
   5 P = (1...10**6).collect{|n|
   6   n * (3 * n - 1) / 2
   7 }.to_set
   8 
   9 H = (1...10**6).collect{|n|
  10   n * (2 * n - 1) 
  11 }
  12 
  13 H.each do |h|
  14   if P.include? h
  15     p h
  16   end
  17 end

iz/競技プログラミング/Project Euler 045 Triangular, pentagonal, and hexagonal (最終更新日時 2012-12-26 15:54:30 更新者 iz)