Skip to content

Instantly share code, notes, and snippets.

@sritchie
Created June 24, 2011 17:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sritchie/1045258 to your computer and use it in GitHub Desktop.
Save sritchie/1045258 to your computer and use it in GitHub Desktop.
(defn prime?
([num]
(prime? num 2 (+ 1 (/ num 2))))
([num cur end]
(or (<= num 2)
(= cur end)
(= num cur)
(if (zero? (mod num cur))
false
(recur num (+ cur 1) end)))))
(defn find-prime-after
[num]
(if (prime? (+ 1 num))
(+ 1 num)
(recur (+ 1 num))))
(defn find-prime-factors
([num]
(find-prime-factors num [2]))
([num lst]
(let [final (last lst)]
(cond
(< num final) lst
(zero? (mod num final)) (recur (/ num final) (conj lst final))
(not= 0 (mod num final))
(recur num (conj (butlast lst) (find-prime-after final)))))))
(defn solve-euler3 []
;;(find-prime-factors 600851475143)
(println (find-prime-factors 10)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment