最大値をある程度予測する
(含まれないけど)一番小さいのは\( 1 = 1^{5} \)。
じゃぁ一番大きい桁はいくらだろうか?
例えば95の解は59045。
これだけで式は5桁分必要になるのがわかる。
じゃぁ95を5回加えるといくらになるか?
\( 5 \times 9^{5} = 295245 \)
桁が増えて6桁になった……。
じゃぁ6桁ではどうか。
\( 6 \times 9^{5} = 354294 \)
354294は999999より小さい
よって、6桁まで計算すれば十分という事が分かった。
式を整理する
0 ≦ a, b, c, d, e, f ≦ 9 として、
\( 10^{5}a+10^{4}b+10^{3}c+10^{2}d+10^{1}e+10^{0}f = a^{5}+b^{5}+c^{5}+d^{5}+e^{5}+f^{5} \\
10^{5}a - a^{5} +10^{4}b - b^{5}+10^{3}c - c^{5}+10^{2}d - d^{5}+10^{1}e - e^{5}+10^{0}f - f^{5} = 0 \\
a(10^{5} - a^{4}) +b(10^{4} - b^{4})+c(10^{3} - c^{4})+d(10^{2} - d^{4})+e(10^{1} - e^{4})+f(10^{0} - f^{4}) = 0\)
この式に対して(a, b, c, d, e, f) = (0, 0, 0, 0, 0, 0)から(9, 9, 9, 9, 9, 9)を代入して0になったら成立。
無駄も多いけど、とりあえず動かしてみて遅すぎたら考え直す方針で。
コード
using System; using System.Diagnostics; namespace Problem30 { class Program { static void Main(string[] args) { Debug.WriteLine(DigitFifthPowers()); } static Int64 DigitFifthPowers() { Int64 sum = 0; for (int a = 0; a < 10; a++) { Int64 A = Part(a, 5); for (int b = 0; b < 10; b++) { Int64 B = Part(b, 4); for (int c = 0; c < 10; c++) { Int64 C = Part(c, 3); for (int d = 0; d < 10; d++) { Int64 D = Part(d, 2); for (int e = 0; e < 10; e++) { Int64 E = Part(e, 1); for (int f = 0; f < 10; f++) { Int64 F = Part(f, 0); if (A + B + C + D + E + F == 0) { Int64 n = Number(a, b, c, d, e, f); sum += n; } } } } } } } //1 = 1^5 が含まれるので1引く return sum - 1; } /// <summary> /// 項の塊(要素?)を処理する /// </summary> static Int64 Part(int n, int y) { return (Int64)(n * (Math.Pow(10, y) - Math.Pow(n, 4))); } /// <summary> /// 桁ごとにバラってるのを1つの数にする /// </summary> static Int64 Number(params int[] d) { Int64 n = 0; for (int i = 0; i < d.Length; i++) { n += (Int64)(d[i] * (Math.Pow(10, d.Length - i - 1))); } return n; } } }
あんまり遅くなかった。
答え
443839
もっといい方法が閃けばなぁ。ピコーン!って。
カシオ 実務電卓 12桁 JS-201SK-RD-N レッド ジャスト・スリムタイプ
- 出版社/メーカー: カシオ計算機
- メディア: オフィス用品
- クリック: 1回
- この商品を含むブログを見る
カシオ 抗菌電卓 デスクタイプ 12桁 DW-122CL-N
- 出版社/メーカー: カシオ計算機
- 発売日: 2007/12/01
- メディア: オフィス用品
- クリック: 3回
- この商品を含むブログを見る
COOLBOTANG ダイヤル式ロック 番号式 4桁可変式 南京錠 防犯用(ブラック)
- 出版社/メーカー: COOLBOTANG
- メディア:
- この商品を含むブログを見る