# -*- mode: icon -*- # $Id: sieve.icon,v 1.3 2000/12/17 23:34:06 doug Exp $ # http://www.bagley.org/~doug/shootout/ procedure main(argv) n := argv[1] | 1 every i := 1 to n do count := sieve() write("Count: ", count) end # algorithm from a test program that is distributed with # the icon source procedure sieve() local limit, s, i limit := 8192 s := set() every insert(s,1 to limit) every member(s,i := 2 to limit) do every delete(s,i + i to limit by i) delete(s,1) return(*s); end