summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--prime?/prime-test.scm (renamed from prime/prime-test.scm)1
-rwxr-xr-xprime?/prime.scm (renamed from prime/prime.scm)18
-rw-r--r--sieve-of-eratosthenes/soe.scm2
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))))