-- $Id: sieve.lua,v 1.9 2001/05/06 04:37:45 doug Exp $
-- http://www.bagley.org/~doug/shootout/
-- contributed by Roberto Ierusalimschy
--
-- Roberto Ierusalimschy pointed out the for loop is much
-- faster for our purposes here than using a while loop.
function main(num)
local flags = {}
for num=1,num do
count = 0
for i=2,8192 do
flags[i] = true
end
for i=2,8192 do
if flags[i] then
for k=i+i, 8192, i do
flags[k] = false
end
count = count + 1
end
end
end
end
NUM = tonumber((arg and arg[1])) or 1
count = 0
main(NUM)
io.write("Count: ", count, "\n")