14 lines
488 B
Common Lisp
14 lines
488 B
Common Lisp
(defun primorial-number-length (n w)
|
|
(values (primorial-number n) (primorial-length w)))
|
|
|
|
(defun primorial-number (n)
|
|
(loop for a below n collect (primorial a)))
|
|
|
|
(defun primorial-length (w)
|
|
(loop for a in w collect (length (write-to-string (primorial a)))))
|
|
|
|
(defun primorial (n &optional (m 1) (k -1) (z 1) &aux (f (primep m)))
|
|
(if (= k n) z (primorial n (1+ m) (+ k (if f 1 0)) (if f (* m z) z))))
|
|
|
|
(defun primep (n)
|
|
(loop for a from 2 to (isqrt n) never (zerop (mod n a))))
|