clojure: moved the abelian-factors function