summaryrefslogtreecommitdiff
path: root/prime?/prime.scm
blob: 3d08a357de74f15f73e3d957d05d55a949bba953 (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."

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

  (if (< n 2)
      #f
      (prime-helper n (quotient n 2))))