blob: e2fbe7a33a4a73e7c97d414e6abc3fa053c63bce (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
;;;; ;;;;;;;;
;;;; Largest prime factor
;;;; Problem 3
;;;;
;;;; The prime factors of 13195 are 5, 7, 13 and 29.
;;;; What is the largest prime factor of the number 600851475143 ?
;;;; ;;;;;;;;
(defconstant +big-num+ 600851475143)
(defun is-prime-rec (n d)
(cond
((= 0 (mod n d)) nil)
((= 0 (mod n (+ d 2))) nil)
((> (* d d) n) t)
(t (is-prime-rec n (+ d 6)))))
(defun is-prime (n)
(when (or (= 0 (mod n 2)) (= 0 (mod n 3))) (return-from is-prime nil))
(is-prime-rec n 5))
; (print (is-prime 1597))
(defvar *largest* 0)
(dotimes (x +big-num+)
(print x)
(when (and (= 0 (mod +big-num+ is-prime x) (setf *largest* x)))
(print *largest*)
|