diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-04-07 17:20:43 +0200 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-04-07 17:20:43 +0200 |
| commit | 9af65c8ac721024d0e45a2a6bde5c3f9fe638516 (patch) | |
| tree | e9af93ce9e4d0263b2e76d2fd29ada90d313f334 /lisp/003-largest_prime_factor.lisp | |
| parent | 31b43cf6d0d58812d30c0e2356f6458d06b1e52e (diff) | |
| download | project_euler-9af65c8ac721024d0e45a2a6bde5c3f9fe638516.tar.gz project_euler-9af65c8ac721024d0e45a2a6bde5c3f9fe638516.tar.bz2 project_euler-9af65c8ac721024d0e45a2a6bde5c3f9fe638516.zip | |
problem 1 2 4 in common lisp
Diffstat (limited to 'lisp/003-largest_prime_factor.lisp')
| -rw-r--r-- | lisp/003-largest_prime_factor.lisp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/lisp/003-largest_prime_factor.lisp b/lisp/003-largest_prime_factor.lisp new file mode 100644 index 0000000..e2fbe7a --- /dev/null +++ b/lisp/003-largest_prime_factor.lisp @@ -0,0 +1,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*) |
