I'd like to have the code below reviewed on all aspects.
Task: Largest prime factor
The prime factors of 13195 are 5, 7, 13 and 29.
What is the largest prime factor of the number 600851475143 ?
My solution
shared.clj
(ns shared)
(defn prime-seq []
((fn prime-seq-gen [s]
(cons (first s)
(lazy-seq (prime-seq-gen (filter #(not= 0 (mod % (first s))) (rest s))))))
(iterate inc 2)))
(defn first-prime-factor [n]
{:pre [(>= n 2)]}
(first (filter #(= 0 (mod n %)) (prime-seq))))
(defn prime-factors [n]
{:pre [(>= n 2)]}
(loop [n n s []]
(if (= n 1)
s
(recur (/ n (first-prime-factor n))
(conj s (first-prime-factor n))))))
problems/problem3.clj
(ns problems.problem3
(:require shared))
(defn largest-prime-factor [n]
(apply max (shared/prime-factors n)))
(println (largest-prime-factor 600851475143))