Problem 10

10以下の素数の和は2 + 3 + 5 + 7 = 17である.
200万以下の全ての素数の和を計算しなさい.

Problem 10 - PukiWiki

Ruby

def get_primes(n)
  a = (2..n).to_a
  ret = []
  begin
    b = a.shift
    ret << b
    a = a.reject{|i| i%b == 0 }
  end while b*b < n
  return ret+a
end

puts get_primes(2000000).inject{|v,i| v+i}

Problem7で作った奴を流用して行けるかと思ったんですが、当時手抜き実装してたおかげで計算時間かかりすぎる罠にはまるなどしたので書き直しました。とはいえ、これもまだまだとは思いますが…一応時間内に答えを出せたのでいいかな、と。