Project Eulerがやっとレベル2になった

Project Euler、やっとレベル2、つまり50問解きました。結構サボってたので時間かかってしまった。

http://github.com/thinca/project-euler/tree/master (私の解答)

やってていくつか思ったのは、まず素数を使う問題多すぎ。予測不可能性から問題にしやすいのはわかるけど、こうも素数で攻められると、また?って感じになる。
使う言語は問題ごとに気分で変えてるんだけど、Rubyには標準でPrimeクラスが使えるので素数の問題は大体Rubyに頼ってしまうなぁ。
フォーラムで他の人の答えを見ていると、何の断りもなく isPrime とか使ってたりする。独自定義してるんだろうけど、毎回貼るのは面倒なので端折ってるんだろうなぁ。

他の人の答えと言えば、たまに何の脈絡もなく謎の定数使ってる人とかいるな。問題文に載ってたり問題の条件から手計算で簡単に導入できたりする数ならまだわかるけど、適当に当たりを付けてるっぽかったり、中には一回別のプログラムで概算して出してるんじゃないかと思えるのもたまにある。あとはファイルから素数のリスト読み込んでたり。
私はそういうのは嫌いなので、可能な限りプログラムで数値出すようにしてる。そうやって当たりつけて「xx msで解けた」とか言われても、えーって思うし。極端な話 puts answer とやって速く解けたよって言ってるようなものだと思うので。
まあそうは言っても、他の人の解答はやっぱり参考になる。毎回なるほどーと思いながら見てる。

今現在問題数は248問*1なので、50問だとまだ5分の1。まー気長に、もしくは飽きるまでぼちぼち続けてくことにします。

*1:あと数時間で250問になるぽい