kaage精進録

雑な解説とかライブラリとかおきもちの垂れ流しです。

Project Euler 解説集

Project Eulerの解説をひたすら書き綴ります。

すべてに共通することがら

プログラムしたいときはPythonを使うと楽です。 オーバーフローの心配がないのが大きなメリットでしょうか。

最初の方もはや解答と感想になってるんですけどごめんなさい。

1 Multiples of 3 and 5

適当にプログラムしましょう。233168です。

2 Even Fibonacci numbers

適当にプログラムしましょう。4613732です。

3 Largest prime factor

適当にプログラムしましょう。6857です。

4 Largest palindrome product

問題名が575ですね。 適当にプログラムしましょう。906609です。

5 Smallest multiple

LCMを計算するだけです。適当にプログラムしましょう。 手計算でもできない量ではないです。 232792560です。

6 Sum square difference

適当にプログラムしましょう。25164150です。 知らんけどなんかエレガントな解法もありそうね

7 10001st prime

適当にプログラムしましょう。104743です。

8 Largest product in a series

適当にコピペしてプログラムしましょう。23514624000です。

9 Special Pythagorean triplet

プログラムで全探索で十分です。31875000です。

10 Summation of primes

適当にプログラムしましょう。142913828922です。

11 Largest product in a grid

ちょっとめんどくさいですけど適当にプログラムしましょう。70600674です。

12 Highly divisible triangular number

適当にプログラムしましょう。やったの昔だから忘れてるけどこれは微妙に時間かかりそう。 76576500です。

13 Large sum

適当にプログラムしましょう。こういうときPython強いです。 5537376230です。

14 Longest Collatz sequence

どうせ指数的収束だろうと思って適当にプログラムを書いてやるとできます。(たぶん) 837799です。

15 Lattice paths

かぞえあげお…ではないですね。 \binom{40}{20}です。WolframAlphaにでも投げましょう。 137846528820です。

16 Power digit sum

プログラムしてやればよいです。1366です。

17 Number letter counts

やりたくね〜〜〜自然言語持ち出すなや ってなるけどちゃんと丁寧にやれば合います。 21124です。

18 Maximum path sum I

上からDPしてやればよいです。(完全に競技プログラミング用語) 1074です。

19 Counting Sundays

閏年だけ気をつければそんなに難しくないです。171です。

20 Factorial digit sum

Pythonで殴ってやって終了です。648です。

21 Amicable numbers

これも適当にプログラム書きましょう。楽です。 31626です。

22 Names scores

プログラム移植が楽です。(よかった) 871198282です。

23 Non-abundant sums

過剰数を適当なところまで列挙してやって試せばよいです。4179871です。

24 Lexicographic permutations

C++のstd::next_permutationみたいなもので回すのが一番楽でしょう。普通に計算してもできます。 2783915460です。

25 1000-digit Fibonacci number

Pythonでプログラムを書きましょう。4782です。

26 Reciprocal cycles

999999\cdots999の約数ならよいです。(語彙力) 983です。

27 Quadratic primes

全探索します。-59231です。(a,b)=(-61,971)のときです。

28 Number spiral diagonals

ちょっと面倒ですがプログラムを書きましょう。平方数に注目すると楽に処理できます。 669171001です。

29 Distinct powers

プログラム書くだけです。9183です。

30 Digit fifth powers

ちょっと考えると高々6桁だとわかるので全探索できます。443839です。

31 Coin sums

DPをします。73682です。

32 Pandigital Products

C++ の std::next_permutation など、順列を全探索できると楽です。45228です。

33 Digit cancelling fractions

全探索するだけです。100です。

34 Digit factorials

145と40585のみです。40730です。

35 Circular primes

全探索しましょう。55です。

36 Double-base palindromes

全探索します。872187です。

37 Truncatable primes

全探索します。748317です。

38 Pandigital multiples

全探索します。932718654です。

39 Integer right triangles

全探索します。840です。ところで、直角三角形って right triangle なんですね。初めて知りました。

40 Champernowne's constant

プログラム書きます。210です。

41 Pandigital prime

全探索します。7652413です。

42以降

準備中