define is-prime x "Tests if x is prime using the Sieve of Eratosthenes" define divides? n primes "Does n divide with any of the primes?" if (not (eq? primes '()) if (not (= (modulo n (car primes)) 0)) divides? n (cdr primes) #t #f define iter x n primes "Does n divide with any of the primes?" if (<= n x) if (divides? n primes) if (= n x) #f iter x (+ n 2) primes iter x + n 2 append primes (list n) #t if (not (= 0 (modulo x 2))) iter x 3 '() #f