diff --git a/isprime.l b/isprime.l index f938b6f..77f9239 100644 --- a/isprime.l +++ b/isprime.l @@ -22,17 +22,19 @@ # Probabilistic prime check (de prime? (N X) (default X 32) - (and - (> N 1) - (bit? 1 N) - (let (Q (dec N) K 0) - (until (bit? 1 Q) - (setq - Q (>> 1 Q) - K (inc K) ) ) - (do X - (NIL (_prim? N Q K)) - T ) ) ) ) + (or + (== N 2) + (and + (> N 1) + (bit? 1 N) + (let (Q (dec N) K 0) + (until (bit? 1 Q) + (setq + Q (>> 1 Q) + K (inc K) ) ) + (do X + (NIL (_prim? N Q K)) + T ) ) ) ) ) # (Knuth Vol.2, p.379) (de _prim? (N Q K) diff --git a/test-wycheproof.l b/test-wycheproof.l index 6854aae..d912219 100644 --- a/test-wycheproof.l +++ b/test-wycheproof.l @@ -5,7 +5,7 @@ (let (N (hex (cdr (assoc "value" L))) R (cdr (assoc "result" L)) - I (prime? N 64) ) + I (prime? N) ) (prin ".") (flush) (cond