#!/usr/local/bin/ruby
# -*- mode: ruby -*-
# $Id: sieve.ruby,v 1.12 2001/05/06 04:37:45 doug Exp $
# http://www.bagley.org/~doug/shootout/
NUM = Integer(ARGV.shift || 1)
count = i = j = 0
flags0 = Array.new(8192,1)
NUM.times do
count = 0
flags = flags0.dup
for i in 2 .. 8192
next unless flags[i]
# remove all multiples of prime: i
(i*i).step(8192, i) do |j|
flags[j] = nil
end
count = count + 1
end
end
print "Count: ", count, "\n"