# -*- coding: utf-8 -*- # http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2043 # # このような性質がどのような性質がよく分からないけど, # 全く同じ性質だと仮定する. # # あとはそのまま.. DIVISOR = {1 => 2, 2 => 3, 3 => 5, 4 => 7, 5 => 11, 6 => 13, 7 => 17} puts (0 .. 9).map(&:to_s).permutation(10).reduce(0) {|sum, a| sum + (a[0] != "0" && DIVISOR.reduce(true){|ret, kv| ret && a[kv[0], 3].join.to_i % kv[1] == 0 } ? a.join.to_i : 0) }