Problem 14 (written in Ruby)

こちらも計算量がかなり多い様子。
2.18GHz Core Duoで2分ほど。


def create_pattern(n)
ret = []
while n != 1 do
ret << n
if n & 0x01 == 1 then
n = 3*n+1
else
n = n / 2
end
end
ret << 1
return ret
end

longest_n = 0
longest = 0
(1...999999).each do |n|
pattern = create_pattern(n)
if longest < pattern.size then
longest_n = n
longest = pattern.size
end
end

Problem:
http://odz.sakura.ne.jp/projecteuler/index.php?Problem%2014