問題
最初の10個の自然数について, その二乗の和は,
$1^2 + 2^2 + ... + 10^2 = 385$
最初の10個の自然数について, その和の二乗は,
$(1 + 2 + ... + 10)^2 = 3025$
これらの数の差は 3025 - 385 = 2640 となる.
同様にして, 最初の100個の自然数について二乗の和と和の二乗の差を求めよ.
素直に
100 |
% {1..$_} |
% {$a, $b = 0, 0} {$a += $_ * $_; $b += $_} {$b * $b - $a}
総和の公式を使って
100 |
% {$_ * ($_ + 1) * ($_ - 1) * (3 * $_ + 2) / 12}
$(\sum_{k=1}^{n} k)^2 - \sum_{k=1}^{n} k^2$$ = \left( \frac{n (n + 1)}{2} \right)^2 - \frac{n (n + 1)(2 n + 1)}{6}$$ = \frac{n(n+1)(n-1)(3n+2)}{12}$
以上
おわり。