毛のはえたようなもの

インターネット的なものをつらつらとかきつらねる。

Problem 10

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

Problem 10 - PukiWiki
include Math
def prime_number?(num,pl)
  return false if num < 2
  return true if num==2 || num==3|| num==5|| num==7|| num==11|| num==13|| num==17|| num==19|| num==23|| num==29|| num==31|| num==37
  return false if num %2==0 ||num%3==0 ||num%5==0 ||num % 7==0||num % 11==0||num % 13==0||num % 17==0||num % 19==0||num % 23==0||num % 29==0||num % 31==0||num % 37==0

  r = sqrt(num) 
  pl.each{|j|
    break if  j > r
    return false if num %j == 0
  }
  return  true
end

limit =2000000
sum = 0
target = 1
p_list =[]
while target <= limit
  p_list.push(target) and sum +=target if prime_number?(target,p_list)
  target +=1
end

p sum

答え:142913828922