RosettaCodeData/Task/Count-in-factors/Clojure/count-in-factors.clj
2016-12-05 22:15:40 +01:00

20 lines
478 B
Clojure

(ns listfactors
(:gen-class))
(defn factors
"Return a list of factors of N."
([n]
(factors n 2 ()))
([n k acc]
(cond
(= n 1) (if (empty? acc)
[n]
(sort acc))
(>= k n) (if (empty? acc)
[n]
(sort (cons n acc)))
(= 0 (rem n k)) (recur (quot n k) k (cons k acc))
:else (recur n (inc k) acc))))
(doseq [q (range 1 26)]
(println q " = " (clojure.string/join " x "(factors q))))