Abundant, deficient and perfect number classifications: Difference between revisions

no edit summary
m (Fixing the header link...)
No edit summary
Line 263:
There are 15043 deficient, 4 perfect, 4953 abundant numbers between 1 and 20000.
</pre>
 
=={{header|Clojure}}==
<lang clojure>(defn pad-class
[n]
(let [divs (filter #(zero? (mod n %)) (range 1 n))
divs-sum (reduce + divs)]
(cond
(< divs-sum n) :deficient
(= divs-sum n) :perfect
(> divs-sum n) :abundant)))
 
(def pad-classes (map pad-class (map inc (range))))
 
(defn count-classes
[n]
(let [classes (take n pad-classes)]
{:perfect (count (filter #(= % :perfect) classes))
:abundant (count (filter #(= % :abundant) classes))
:deficient (count (filter #(= % :deficient) classes))}))</lang>
 
Example:
 
<lang clojure>(count-classes 20000)
;=> {:perfect 4,
; :abundant 4953,
; :deficient 15043}</lang>
 
=={{header|Common Lisp}}==