How to resolve the algorithm Abundant, deficient and perfect number classifications step by step in the Clojure programming language
Published on 12 May 2024 09:40 PM
How to resolve the algorithm Abundant, deficient and perfect number classifications step by step in the Clojure programming language
Table of Contents
Problem Statement
These define three classifications of positive integers based on their proper divisors. Let P(n) be the sum of the proper divisors of n where the proper divisors are all positive divisors of n other than n itself.
6 has proper divisors of 1, 2, and 3. 1 + 2 + 3 = 6, so 6 is classed as a perfect number.
Calculate how many of the integers 1 to 20,000 (inclusive) are in each of the three classes. Show the results here.
Let's start with the solution:
Step by Step solution about How to resolve the algorithm Abundant, deficient and perfect number classifications step by step in the Clojure programming language
Source code in the clojure programming language
(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))}))
(count-classes 20000)
;=> {:perfect 4,
; :abundant 4953,
; :deficient 15043}
You may also check:How to resolve the algorithm Hello world/Standard error step by step in the Metafont programming language
You may also check:How to resolve the algorithm Remove duplicate elements step by step in the Objeck programming language
You may also check:How to resolve the algorithm Catalan numbers step by step in the RPL programming language
You may also check:How to resolve the algorithm Rot-13 step by step in the Slate programming language
You may also check:How to resolve the algorithm Rep-string step by step in the Swift programming language