Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (defun is-prime (n &optional (d (- n 1)))
- (if (/= n 1) (or (= d 1)
- (and (/= (rem n d) 0)
- (is-prime n (- d 1)))) ()))
- (defun prime-factors-helper (x n)
- (if (is-prime x)
- (list x)
- (if (is-prime n)
- (if (AND (= (mod x n) 0) (<= n (/ x 2)))
- (cons n (prime-factors-helper (/ x n) n))
- (prime-factors-helper x (+ 1 n)))
- (prime-factors-helper x (+ 1 n)))))
- (defun prime-factors (x)
- (prime-factors-helper x 2))
- CL-USER 53 > (prime-factors 512)
- (2 2 2 2 2 2 2 2 2)
- CL-USER 54 > (prime-factors 123456789)
- Stack overflow (stack size 261120).
- 1 (abort) Return to level 0.
- 2 Return to top loop level 0.
- Type :b for backtrace or :c <option number> to proceed.
- Type :bug-form "<subject>" for a bug report template or :? for other options
Add Comment
Please, Sign In to add comment