Abundant, deficient and perfect number classifications: Difference between revisions

Content added Content deleted
m (Fixing the header link...)
No edit summary
Line 263: Line 263:
There are 15043 deficient, 4 perfect, 4953 abundant numbers between 1 and 20000.
There are 15043 deficient, 4 perfect, 4953 abundant numbers between 1 and 20000.
</pre>
</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}}==
=={{header|Common Lisp}}==