プロジェクトオイラー6.

この記事の所要時間: 153

No.6 Sum square difference

問題.

Q. 1から10までの平方の和は,

\begin{align*}
1^2+2^2+\cdots+10^2 = 385
\end{align*}

1から10までの和の平方は,

\begin{align*}
(1+2+\cdots+10)^2 = 55^2 = 3025
\end{align*}

で, その差は \(3025-385=2640\) になります.

では, 1から100までの平方の和と和の平方の差はいくつになるか.

考え方とプログラム例(Python)

この問題は単純に計算すれば良さそうです.

LIST と map を利用して計算しました.

ちなみに, 1から\(n\)までの和と, 平方の和は,

\begin{align*}
1+2+\cdots+n &= \dfrac{1}{2}n(n+1)\\
1^2+2^2+\cdots+n^2 &= \dfrac{1}{6}n(n+1)(2n+1)
\end{align*}

なので, 1から\(n\)までの和の平方と平方の和の差は,

\begin{align*}
(1+2+\cdots+n)^2 – (1^2+2^2+\cdots+n^2) &= \left\{\dfrac{1}{2}n(n+1)\right\}^2 – \dfrac{1}{6}n(n+1)(2n+1)\\
&= \dfrac{1}{4}n^2(n+1)^2-\dfrac{1}{6}n(n+1)(2n+1)\\
&= \dfrac{1}{12}n(n+1)\{3n(n+1)-2(2n+1)\}\\
&= \dfrac{1}{12}n(n+1)(n-1)(3n+2)
\end{align*}

となるので, この式の\(n\)に100を代入すれば答えになります.

今回は頑張れば手計算でもできそうな簡単な問題でした.

スポンサーリンク
sub2
sub2
  • このエントリーをはてなブックマークに追加