September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
23
Task/Amicable-pairs/Clojure/amicable-pairs.clj
Normal file
23
Task/Amicable-pairs/Clojure/amicable-pairs.clj
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
(ns example
|
||||
(:gen-class))
|
||||
|
||||
(defn factors [n]
|
||||
" Find the proper factors of a number "
|
||||
(into (sorted-set)
|
||||
(mapcat (fn [x] (if (= x 1) [x] [x (/ n x)]))
|
||||
(filter #(zero? (rem n %)) (range 1 (inc (Math/sqrt n)))) )))
|
||||
|
||||
|
||||
(def find-pairs (into #{}
|
||||
(for [n (range 2 20000)
|
||||
:let [f (factors n) ; Factors of n
|
||||
M (apply + f) ; Sum of factors
|
||||
g (factors M) ; Factors of sum
|
||||
N (apply + g)] ; Sum of Factors of sum
|
||||
:when (= n N) ; (sum(proDivs(N)) = M and sum(propDivs(M)) = N
|
||||
:when (not= M N)] ; N not-equal M
|
||||
(sorted-set n M)))) ; Found pair
|
||||
|
||||
;; Output Results
|
||||
(doseq [q find-pairs]
|
||||
(println q))
|
||||
Loading…
Add table
Add a link
Reference in a new issue