Problem48

30分プログラム、その322。Problem48 - Project Euler

次の式は、11 + 22 + 33 + ... + 1010 = 10405071317 である。
では、11 + 22 + 33 + ... + 10001000 の最後の10桁を求めよ。

正直にやったらどうなるんだろう、とRubyワンライナーを書いたら解けてしまった。ま、これでいいか。

使い方

$ ruby -e "puts (1..1000).map{|n|n**n}.inject{|x,y|x+y}.to_s[-10..-1]"
9110846700

ソースコード

puts (1..1000).map{|n|n**n}.inject{|x,y|x+y}.to_s[-10..-1]