Project Euler Problem 7
class Integer def upto_inf n = self loop do yield(n) n += 1 end end end def prime?(primes, n) not primes.any? {|m| (n % m).zero? } end def f(index) i, primes = 1, [2] 3.upto_inf do |n| if prime?(primes, n) primes << n i += 1 return n if i >= index end end end p f(6) p f(10001)