def miller_rabin_prime?(n, g)
  d = n - 1
  s = 0
  while d % 2 == 0
    d /= 2
    s += 1
  end
  g.times do
    a = 2 + rand(n - 4)
    x = a.pow(d, n)  
    next if x == 1 || x == n - 1
    for r in (1..s - 1)
      x = x.pow(2, n) 
      return false if x == 1
      break if x == n - 1
    end
    return false if x!= n - 1
  end
  true 
end

p primes = (3..1000).step(2).find_all {|i| miller_rabin_prime?(i,10)}