Project Euler Problem 16
require 'enumerator' module Enumerable def sum inject(0) {|a, n| a + n } end end class Integer def to_digit_ary to_s.enum_for(:each_byte).map {|c| c - ?0 } end end def f(n, m) (n ** m).to_digit_ary.sum end p f(2, 15) p f(2, 1000)