#!/usr/bin/newlisp

# sieve - benchmark
# requires newLISP v. 7.5.2 or later

(define (main)
	(set 'NUM (integer (main-args 2)))

	(dotimes (p NUM)
		(set 'flags (array 8193 '(1)))
		(set 'cnt 0)

		(for (i 2 8192)
			(if (= (nth i flags) 1)
				(begin
					(set 'k (+ i i))
					(while (<= k 8192)
						(nth-set k flags 0)
						(inc 'k i))
					(inc 'cnt)))))
				
	(println "Count: " cnt))

(main)

(exit)


syntax highlighting with newLISP and syntax.cgi