euler
http://projecteuler.net/index.php?section=problems
の1ページ目、50問くらいできた。
とRubyで知ったのでRubyを使っているのですが、1.9のPrimeが1.8より断然早くて素晴らしい。
ちなみにp50はこんな風に書いてみた。
require 'mathn' limit = 1000000 plist = Prime.instance.each(limit).to_a ans = 0 maxlen = 0 (0..plist.size-2).each do |c| sum = plist[c] d = c+1 while (sum += plist[d]) < limit e = d-c+1 if e > maxlen and sum.prime? ans,maxlen = sum,e end d += 1 end end p [ans,maxlen]
でもifのsum.prime?を前にするととても遅いよ。
計算量を少なくするには…と考えはじめると次の問題に進めない。