diff options
-rw-r--r-- | prime?/prime-test.scm (renamed from prime/prime-test.scm) | 1 | ||||
-rwxr-xr-x | prime?/prime.scm (renamed from prime/prime.scm) | 18 | ||||
-rw-r--r-- | sieve-of-eratosthenes/soe.scm | 2 |
3 files changed, 11 insertions, 10 deletions
diff --git a/prime/prime-test.scm b/prime?/prime-test.scm index 7c9d557..3add85a 100644 --- a/prime/prime-test.scm +++ b/prime?/prime-test.scm @@ -1,3 +1,4 @@ +;; -*- compile-command: "guile -L . prime-test.scm"; -*- (use-modules (srfi srfi-64) (prime)) diff --git a/prime/prime.scm b/prime?/prime.scm index 89915a1..3d08a35 100755 --- a/prime/prime.scm +++ b/prime?/prime.scm @@ -3,15 +3,15 @@ (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)))) - -(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))))) diff --git a/sieve-of-eratosthenes/soe.scm b/sieve-of-eratosthenes/soe.scm index 4b83a97..f0067c4 100644 --- a/sieve-of-eratosthenes/soe.scm +++ b/sieve-of-eratosthenes/soe.scm @@ -15,7 +15,7 @@ (size (length buffer))) (sieve (filter - (lambda (x) (not (eq? (remainder x curr) 0))) + (lambda (x) (not (zero? (remainder x curr)))) buffer) (cons curr accept) size)))) |