【Project EulerにRubyで挑戦シリーズ】問6:Sum square difference

スポンサーリンク

今回の問題

Sum square difference

The sum of the squares of the first ten natural numbers is,
1**2 + 2**2 + … + 10**2 = 385

The square of the sum of the first ten natural numbers is,
(1 + 2 + … + 10)2 = 552 = 3025

Hence the difference between the sum of the squares of the first ten natural numbers and the square of the sum is 3025 − 385 = 2640.
Find the difference between the sum of the squares of the first one hundred natural numbers and the square of the sum.

最初の10個の自然数について, その二乗の和は,
12 + 22 + … + 102 = 385

最初の10個の自然数について, その和の二乗は,
(1 + 2 + … + 10)2 = 3025

これらの数の差は 3025 – 385 = 2640 となる.
同様にして, 最初の100個の自然数について二乗の和と和の二乗の差を求めよ.

書いた内容

range = [*1..100]
sum_of_squares = range.inject{ |result, n| result + n ** 2 }
square_of_sum = range.inject(:+) ** 2

puts square_of_sum - sum_of_squares
#=> 25164150

問6は簡単でした。
チェリー本でも便利だなと感じた inject メソッド、慣れてしまえば本当に便利です。

特に言うことないのでこれで終わります。

※Project Eulerのリポジトリ

この記事の内容が役に立ったと思いました、SNSで記事を共有していただけますと幸いです。