プログラミングの備忘録

プログラムをつくる過程を残すもの

「Project Euler」を始めてみる

こんにちは。
今回は「Project Euler」を触ってみます。


Project Eulerは数学の問題集のような、制限時間の無い競技プログラミングのようなものです。

登録が必要ですが、設定するのはニックネームとパスワードくらいなので特に問題無いと思います。
ただ、基本英語なので解読が大変かもしれません。

projecteuler.net

現時点で全795問あり、簡単なものから難しいものまで様々。

また、進捗がわかりやすくなっているので、自分のモチベーション維持になるかもしれません。


では早速、1問目を解きながらProject Eulerの流れを見てみます。

問題ページはこのようになっており、問題文とその答えを入力する欄があります。

手計算でやっても良いですが、自分は競技プログラミングの練習と思ってやるつもりなのでpythonで書いてみます。

以下、ネタバレになる(かもしれない)ので、嫌だという方は先に解いてから戻ってきてください。

projecteuler.net


問題文は、

10より小さい3または5の倍数を並べると、3 5 6 9となり、その和は23である。
1000より小さい3または5の倍数の和を求めよ。

という感じです。

プログラムを書くと、

n = 1000

ans = 0
for i in range(1, n):
    if i % 3 == 0 or i % 5 == 0:
        ans += i

print(ans)

という感じ。答えは233168と出力されました。

そしてこれを入力して「check」を押すと、

正解だったようです。

この下には、これまで何人が解いたとか自分が過去に解いた問題の難易度と比べてどうとかが書かれていました。


まとめ

ということで、「Project Euler」に登録して1問目を解いてみました。

1日1問やっても2年くらい楽しめますし、おそらくそんなにスムーズに行かないでしょうから結構長いこと遊べるのでは無いかと思います。