1 USING: bit-arrays kernel locals math math.functions math.ranges
5 :: sieve ( n -- #primes )
6 n dup odd? [ 1 + ] when 2/ <bit-array> :> sieve
9 3 n sqrt 2 <range> [| i |
11 i sq n i 2 * <range> [| j |
17 sieve [ not ] count 1 + ;
19 : sieve-benchmark ( -- )
20 100,000,000 sieve 5,761,455 assert= ;