# Prime Number in Lisp

Published on 01 October 2020 (Updated: 11 October 2020)

Welcome to the Prime Number in Lisp page! Here, you'll find the source code for this program as well as a description of how the program works.

## Current Solution

``````(defun primep (n)
(cond
((= 0    n)          nil)
((= 1    n)          nil)
((= 2    n)          T)
(t
(loop
:with root     = (isqrt n)
:with divisors = (cons 2 (loop :for i :from 3 :to root :by 2 :collect i))
:for d = (pop divisors)
:if (zerop (mod n d))
:do (return nil)
:else :do (setf divisors (delete-if (lambda (x) (zerop (mod x d))) divisors))
:while divisors
:finally (return t)))))

(defun print-bool (b)
(if b
(write-line "prime")
(write-line "composite")))

(defun maybe-pos-int (input)
(cond
((null input) nil)
((string= input "") nil)
((every #'digit-char-p input) (parse-integer input))
(t nil)))

(cond
((null num) (write-line "Usage: please input a non-negative integer"))
(t (print-bool (primep num))))

``````

Prime Number in Lisp was written by:

• Parker Johansen
• Renato

If you see anything you'd like to change or update, please consider contributing.

## How to Implement the Solution

No 'How to Implement the Solution' section available. Please consider contributing.

## How to Run the Solution

No 'How to Run the Solution' section available. Please consider contributing.