Advertisement
Guest User

Untitled

a guest
Jun 24th, 2011
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. ;;euler problem #3
  3.  
  4. (defn prime?
  5.   ([num] (prime? num 2 (+ 1 (/ num 2))))
  6.   ([num cur end]
  7.      (cond
  8.       (<= num 2) true
  9.       (or (= cur end) (= num cur)) true
  10.       (= 0 (mod num cur)) false
  11.       :else (recur num (+ cur 1) end)
  12.       )
  13.      )
  14.   )
  15.  
  16. (defn find-prime-after [num]
  17.   (if
  18.       (prime? (+ 1 num)) (+ 1 num)
  19.       (recur (+ 1 num)))
  20. )
  21.  
  22.  
  23. (defn find-prime-factors
  24.   ([num] (find-prime-factors num [2]))
  25.   ([num lst]
  26.      (cond
  27.       (< num (last lst)) lst)
  28.       (= 0 (mod num (last lst))) (recur (/ num (last lst)) (conj lst (last lst)))
  29.       (not= 0 (mod num (last lst))) (recur num (conj (reverse (rest (reverse lst))) (find-prime-after (last lst))))
  30.       )
  31. )
  32.  
  33. (defn solve-euler3 []
  34.   ;;(find-prime-factors 600851475143)
  35.   (println (find-prime-factors 10))
  36.   )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement