; Sieve of Erastosthenes
; Demo program for ATALAN programming language

;(c) 2010 Rudla Kudla


  
use atari

RTCLOCK@20:byte

const SQRT_COUNT = 91

top:0..8191
sieve:array(top) of 0..1
k,j,prime:top
start,time:byte

"Computing primes..."

for k 
	sieve(k) = 1

RTCLOCK = 0

for i:2..SQRT_COUNT where sieve(i) = 1
		j = i * 2
		while j<=8191
			sieve(j) = 0
			j = j + i

time = RTCLOCK
 
"Time used: [time] ticks"
"Press Q to quit, any other key for list"

CH = none
until CH <> none

for k where sieve(k) = 1 until CH = Q
	 "[k]"
	
CH = none