# Prime Generator
#
#   by Shin-ichiro Hara
#
# Version 1.0 (2001.09.07)

class Primes
  List = [2, 3]
  def [](n); List[n]; end
  def succ
    n = List[-1] + 2
    n += 2 while List.find{|k| n % k == 0}
    List << n
    n
  end

  def each
    List.each do |x|
      yield x
    end
    loop do
      yield succ
    end
  end

  def self.include?(x)
    new.each do |prm|
      return false if prm > x
      return true if prm == x
    end
  end
end


syntax highlighted by Code2HTML, v. 0.9.1