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

この記事の所要時間: 137

No.30 Digit fifth powers

問題.

驚いたことに, 自身の各桁の数字の 4 乗和として書ける数は 3 つしかない:\begin{align*}
1634 &= 1^4+6^4+3^4+4^4\\
8208 &= 8^4+2^4+0^4+8^4\\
9474 &= 9^4+4^4+7^4+4^4
\end{align*}ここで, \(1=1^4\) は含めていない.これらの数の和は \(1634+8208+9474=19316\).

では, 自身の各桁の数字の 5 乗和で書ける数の和はいくつになるか.

考え方とプログラム例.

まず, 調べる範囲を狭めるために次のようなことを考えます.

\(n\) 桁の自然数が, 各桁の 5 乗和で書けるとします.

\(n\) 桁の数は, 最小で \(10^{n-1}\), 最大で \(10^n-1\).

\(n\) 桁の数の各桁の数字の 5 乗和は, 最小で \(n\cdot 1^5=n\), 最大で \(n\cdot 9^5\) です.

すると, \(n\geqq 7\) のとき, \(n\cdot 9^5<10^{n-1}\) となるため, 上の 2 つの数が一致することはありません.

よって, 6 桁以下の数について調べればよいことが分かります.

今回は c言語で, 実行時間は 0.04sec でした.

答えはこの下にあります. 反転してください.

A. 443839 (4150+4151+54748+92727+93084+194979)

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