Project Eulerはじめました 1-10

はい

感想などまとめです。

なお、普段の競プロと違い、Python (Python3) で書いていきます。

制限時間とかないので安心ですね。

 

1. fizzbuzzっぽい。if, forって知ってますか?

2. 再帰とかを使うまでもなさそう。Python再帰ってどう書くんでしたっけ...

3. まあ割りまくればいいんじゃないの

4. 回文だるいけど、Pythonだと「文字列にする」→「反転する」→「数値に戻す」という操作ができた。べんり〜

5. math.gcd チートがすぎひんか?C++再帰していたのはいったい...

6. ナメてる?

7. 篩。N以下を調べるなら、愚直な実装で O(Nlog N). Pythonで配列を使うの慣れてなかった。まとめる。

- 初期化 たとえば全部 0 で N 個埋めるなら [0] * N とする。

- 追加 list.append(ほげ)

- 削除はpop()かremove(). またあとで使ったときに。

- 長さはlen()

ちなみに素数の個数は

1e2 以下 25

1e3 以下 168

1e4 以下 1229

1e5 以下 9592

1e6 以下 78498

1e7 以下 664579

素数定理でだいたい n / ln(n) でしたね。

8. そう... 数列を表してると思わなくて最初わけわからんかった("in """the""" 1000-digit number" やめろ)。まあ、うん。

9. (8, 15, 17) を想起すればコードを書くまでもなかったなぁ...

10. 素数が好きすぎる。7 を流用。