This is for Project Euler #30:Surprisingly there are only three numbers that can be written as the  sum of fourth powers of their digits:\$1634 = 1^4 + 6^4 + 3^4 + 4^4\$    \$8208 = 8^4 + 2^4 + 0^4 + 8^4\$    \$9474 = 9^4 + 4^4 + 7^4 + 4^4\$  As \$1 = 1^4\$ is not a sum it is not included.  The sum of these numbers  is \$1634 + 8208 +  9474 = 19316\$.Find the sum of all the numbers that can be written as the sum of  fifth powers of their digits.list = []2.upto(1_000_000) do |num| list << num if num.to_s.split().map(&:to_i).map { |num| num ** 5 }.inject(:+) == numendputs list.inject(:+)This works, and I am here for three reasons:I use map twice, and this smells but I don't know an easier/better way.How does the & work? Notice I do map(&:to_i) and inject(:+).  I have seen examples of this but don't know why they are different and what is going on.Any suggestions on code improvements?
Project Euler code evaluation - digit fifth powers
ruby;programming challenge