-- $Id: sieve.lua,v 1.9 2001/05/06 04:37:45 doug Exp $
-- http://www.bagley.org/~doug/shootout/
--
-- 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=num,1,-1 do
    count = 0
    for i=2,8192 do
        flags[i] = 1
    end
    for i=2,8192 do
        if flags[i] == 1 then
            k = 0
            for k=i+i, 8192, i do
            flags[k] = 0
        end
            count = count + 1    
        end
    end
    end
end

NUM = tonumber((arg and arg[1])) or 1
count = 0
main(NUM)
write("Count: ", count, "\n")