# -*- coding: utf-8 -*- # http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2038 # # 答えは9桁かつ 2以上の積の連結からなるので係数は 10 * 4 以下である. # あとはそのまま.. puts (1 ... 10 ** 4).reduce(-1) {|max, i| s = "" n = 1 loop do s += (i * n).to_s a = s.chars.to_a if (a.size > 9 || a.include?("0") || a.size != a.uniq.size) break end if (a.size == 9) max = [max, s.to_i].max break end n = n.next end max }