RosettaCodeData/Task/Semiprime/Common-Lisp/semiprime.lisp

10 lines
295 B
Common Lisp
Raw Permalink Normal View History

2015-02-20 09:02:09 -05:00
(defun semiprimep (n &optional (a 2))
(cond ((> a (isqrt n)) nil)
((zerop (rem n a)) (and (primep a) (primep (/ n a))))
(t (semiprimep n (+ a 1)))))
(defun primep (n &optional (a 2))
(cond ((> a (isqrt n)) t)
((zerop (rem n a)) nil)
(t (primep n (+ a 1)))))