Project Euler - Problem 6

最初の10個の自然数について、その和の二乗と、二乗数の和は以下の通り。
 1^2 + 2^2 + ... + 10^2 = 385
 (1 + 2 + ... + 10)^2   = 3025
これらの数の差は 3025 - 385 = 2640 となる。
同様にして、最初の100個の自然数について和の二乗と二乗の和の差を求めよ。

仰せのままにコードにするだけでできた。

nums = (1..100)
p nums.inject(0, :+) ** 2 - nums.inject(0){|r, i| r + i ** 2 }
# => 25164150