Project Euler日記 31-40

10進法好きすぎない?

31. 全探索してもよさそうだが、各 v に対し 1*x+2*y+5*z=v なる (x, y, z) の個数をあらかじめカウントしておけば、計算が楽かも。100+100 を忘れて 1 敗。

32. 数字と文字列の変換が容易な Python 先生が偉大すぎる。4 桁 × 1桁を忘れないように。

その昔、こういう組を手計算で求める能力が高かった時代がありましたが (算オリ力といいます)、手計算なんてもう古い、時代は Python, Python や!

33. これも手計算で求める能力が高い時代がありましたが...ってやつ。まあこれくらいなら手計算でもそんなにしんどくないかも。やりませんが。

34. ファクトリオン [検索]

桁注目系は、きほん文字列経由でかんたんに書けるっぽい。

35. これは文字列経由せずに数値でやった方が楽かなぁ。

36. 基数変換については以下のとおり:

note.nkmk.me

reverse は[::-1]でしたね。あっけなく探索できるのはなんとなく寂しさがある。

37. 上から捨てるのちょっとだけだるかった。あと、上限の評価を真面目にやらなかったけど、ちゃんと評価するのめんどそう。11個と与えられてるので、適当に区切ってやれば問題なかったけど。

38. パンデジタルについては問題32のように判定できる。あとは倍数を文字列にして結合すればよい。Pythonは偉大。

39. 全探索してもそんなに時間はかからないのであった。ただまあもっと簡単には出せる。(m^2-n^2, 2mn, m^2+n^2). 

40. 文字列結合のできるPythonが偉大すぎる。桁数ごとに真面目にカウントするまでもなかった。