How to resolve the algorithm Abundant, deficient and perfect number classifications step by step in the EchoLisp 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 EchoLisp 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 EchoLisp programming language

Source code in the echolisp programming language

(lib 'math) ;; sum-divisors function

(define-syntax-rule (++ a) (set! a (1+ a)))

(define (abondance (N 20000))
    (define-values (delta abondant deficient perfect) '(0 0 0 0))
    (for ((n (in-range 1 (1+ N))))
	 (set! delta (- (sum-divisors n) n))
	 (cond
	 	((< delta 0) (++ deficient))
	 	((> delta 0) (++ abondant))
	 	(else (writeln 'perfect→ n) (++ perfect))))
	 	
	(printf "In range 1.. %d" N)
	(for-each (lambda(x) (writeln x (eval x))) '(abondant deficient perfect)))

(abondance)
    perfect→     6    
    perfect→     28    
    perfect→     496    
    perfect→     8128    
    In range 1.. 20000
    abondant     4953    
    deficient     15043    
    perfect     4


  

You may also check:How to resolve the algorithm Random numbers step by step in the Scala programming language
You may also check:How to resolve the algorithm Identity matrix step by step in the Common Lisp programming language
You may also check:How to resolve the algorithm Loops/Break step by step in the Haskell programming language
You may also check:How to resolve the algorithm Pierpont primes step by step in the FreeBASIC programming language
You may also check:How to resolve the algorithm 100 doors step by step in the Mirah programming language