Project Euler Problem 10
問題
The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17. Find the sum of all the primes below two million.
ソース
max = 2000000 prime = Array.new(max, 1) prime[0] = 0 prime[1] = 0 i = 2 while i < Math.sqrt(max).to_i + 1 do (i + i).step(max, i) do |x| prime[x] = 0 end j = prime[(i + 1)..max].index(1) break if j.nil? i += j + 1 end sum = 2 3.step(max, 2) {|x| sum += x if prime[x] != 0 } puts sum
解答
142913828922
感想
Problem 7のソース使い回しで。。。
まぁ200万まで篩にかけると時間かかるよなwww
高速化は無理です!(考えたくない・・