Guest User

Untitled

a guest
Mar 18th, 2018
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.84 KB | None | 0 0
  1. (defun is-prime (n &optional (d (- n 1)))
  2. (if (/= n 1) (or (= d 1)
  3. (and (/= (rem n d) 0)
  4. (is-prime n (- d 1)))) ()))
  5.  
  6. (defun prime-factors-helper (x n)
  7. (if (is-prime x)
  8. (list x)
  9. (if (is-prime n)
  10. (if (AND (= (mod x n) 0) (<= n (/ x 2)))
  11. (cons n (prime-factors-helper (/ x n) n))
  12. (prime-factors-helper x (+ 1 n)))
  13. (prime-factors-helper x (+ 1 n)))))
  14.  
  15. (defun prime-factors (x)
  16. (prime-factors-helper x 2))
  17.  
  18. CL-USER 53 > (prime-factors 512)
  19. (2 2 2 2 2 2 2 2 2)
  20.  
  21. CL-USER 54 > (prime-factors 123456789)
  22.  
  23. Stack overflow (stack size 261120).
  24. 1 (abort) Return to level 0.
  25. 2 Return to top loop level 0.
  26.  
  27. Type :b for backtrace or :c <option number> to proceed.
  28. Type :bug-form "<subject>" for a bug report template or :? for other options
Add Comment
Please, Sign In to add comment