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

Source code in the factor programming language

USING: fry math.primes.factors math.ranges ;
: psum     ( n -- m )   divisors but-last sum ;
: pcompare ( n -- <=> ) dup psum swap <=> ;
: classify ( -- seq )   20,000 [1,b] [ pcompare ] map ;
: pcount   ( <=> -- n ) '[ _ = ] count ;
classify [ +lt+ pcount "Deficient: " write . ]
         [ +eq+ pcount "Perfect: "   write . ]
         [ +gt+ pcount "Abundant: "  write . ] tri


  

You may also check:How to resolve the algorithm Exponentiation operator step by step in the EasyLang programming language
You may also check:How to resolve the algorithm Boolean values step by step in the Racket programming language
You may also check:How to resolve the algorithm Call a function step by step in the Lambdatalk programming language
You may also check:How to resolve the algorithm Quaternion type step by step in the Ol programming language
You may also check:How to resolve the algorithm Kaprekar numbers step by step in the V (Vlang) programming language