The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17.

Find the sum of all the primes below two million.


In [21]:
def is_prime?(num)
  return true if num == 2
  return false if num % 2 == 0
  return (2..Math.sqrt(num).ceil).all?{|i| num % i != 0}
end

is_prime? 104693


Out[21]:
true

In [20]:
is_prime? 2


Out[20]:
false

In [19]:
primes = []

(2..2000000).lazy.each do |i| 
  primes << i if is_prime?(i)
end

primes.inject(&:+)


Out[19]:
142913828920

In [ ]: