summaryrefslogtreecommitdiff
path: root/prime/prime.scm
blob: 89915a104b850857407e09d7cfca48ff00809a8c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
(define-module (prime))


(define-public (prime? n)
  "Returns #t if N is prime, else #f."
  (if (< n 2)
      #f
      (prime-helper n (quotient n 2))))

(define (prime-helper n d)
  "Recursively checks if N is a prime number
by attempting division by number D,D-1,D-2..."
  (if (< d 2)
      #t
      (if (equal? (remainder n d) 0)
          #f
          (prime-helper n (1- d)))))