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

Source code in the newlisp programming language

;;;	The list (1 .. n-1) of integers is generated
;;;	then each non-divisor of n is replaced by 0
;;;	finally all these numbers are summed.
;;;	fn defines an anonymous function inline.
(define (sum-divisors n)
	(apply + (map (fn (x) (if (> (% n x) 0) 0 x)) (sequence 1 (- n 1)))))
;
;;;	Returns the symbols -, p or + for deficient, perfect or abundant numbers respectively.
(define (number-type n)
	(let (sum (sum-divisors n))
		(if
			(< sum n)	'-
			(= sum n)	'p
			true		'+)))
;
;;;	Tallies the types from 2 to n.
(define (count-types n)
	(count '(- p +) (map number-type (sequence 2 n))))
;
;;;	Running:
(println (count-types 20000))


  

You may also check:How to resolve the algorithm Multiplication tables step by step in the J programming language
You may also check:How to resolve the algorithm Sokoban step by step in the Ruby programming language
You may also check:How to resolve the algorithm Nim game step by step in the Action! programming language
You may also check:How to resolve the algorithm Fibonacci word/fractal step by step in the JavaScript programming language
You may also check:How to resolve the algorithm Set step by step in the Scala programming language