diff --git a/fast-expt.lisp b/fast-expt.lisp
index fc92c2c..8fd6ba5 100644
--- a/fast-expt.lisp
+++ b/fast-expt.lisp
@@ -2,13 +2,13 @@

 (defun my-fast-expt-recu-impl (b n)
   (cond ((= n 0) 1)
-        ((my-even? n) (my-square (my-fast-expt-recu-impl b (my-half n))))
+        ((my-even? n) (my-square (my-fast-expt-recu-impl b (my-halve n))))
         (t (* b (my-fast-expt-recu-impl b (- n 1))))))

 (defun my-fast-expt-iter-impl (b n)
   (defun my-fast-expt-iter (b product max)
     (cond ((= 0 max) product)
-          ((my-even? max) (my-fast-expt-iter (my-square b) product (my-half max)))
+          ((my-even? max) (my-fast-expt-iter (my-square b) product (my-halve max)))
           ((my-odd? max) (my-fast-expt-iter b (* product b) (- max 1)))))
   (my-fast-expt-iter b 1 n))

diff --git a/prime?.lisp b/prime?.lisp
index e69de29..a9958db 100644
--- a/prime?.lisp
+++ b/prime?.lisp
@@ -0,0 +1,12 @@
+(in-package :math-algo)
+
+(defun my-prime? (n)
+  (defun my-divides? (a b)
+    (= (rem b a) 0))
+  (defun my-find-divisor (n test-divisor)
+    (cond ((> (my-square test-divisor) n) n)
+          ((my-divides? test-divisor n) test-divisor)
+          (t (my-find-divisor n (+ test-divisor 1)))))
+  (defun my-smallest-divisor (n)
+    (my-find-divisor n 2))
+  (= n (my-smallest-divisor n)))