[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[shootout] sieve.bat
; @echo off
; mzscheme.exe -f sieve.bat -mvC %1
; goto :end
(define (main args)
(let ((n (string->number (car args)))
(count 0)
(flags (make-vector 8192)))
(let loop ((iter n))
(if (> iter 0)
(begin
(do ((i 0 (+ i 1))) ((>= i 8192)) (vector-set! flags i #t))
(set! count 0)
(do ((i 2 (+ 1 i)))
((>= i 8192))
(if (vector-ref flags i)
(begin
(do ((k (+ i i) (+ k i)))
((>= k 8192))
(vector-set! flags k #f))
(set! count (+ 1 count)))))
(loop (- iter 1)))))
(display "Count: ") (display count)))
; :end