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

Source code in the ubasic/4th programming language

P = 0 : D = 0 : A = 0

For n= 1 to 20000
  s = FUNC(_SumDivisors(n))-n
  If s = n Then P = P + 1
  If s < n Then D = D + 1
  If s > n Then A = A + 1
Next

Print "Perfect: ";P;" Deficient: ";D;" Abundant: ";A
End

' Return the least power of a@ that does not divide b@

_LeastPower Param(2)
  Local(1)

  c@ = a@
  Do While (b@ % c@) = 0
    c@ = c@ * a@
  Loop

Return (c@)


' Return the sum of the proper divisors of a@

_SumDivisors Param(1)
  Local(4)

  b@ = a@
  c@ = 1

  ' Handle two specially

  d@ = FUNC(_LeastPower (2,b@))
  c@ = c@ * (d@ - 1)
  b@ = b@ / (d@ / 2)

  ' Handle odd factors

  For e@ = 3 Step 2 While (e@*e@) < (b@+1)
    d@ = FUNC(_LeastPower (e@,b@))
    c@ = c@ * ((d@ - 1) / (e@ - 1))
    b@ = b@ / (d@ / e@)
  Loop

  ' At this point, t must be one or prime

  If (b@ > 1) c@ = c@ * (b@+1)
Return (c@)


  

You may also check:How to resolve the algorithm Determine if a string is collapsible step by step in the Phix programming language
You may also check:How to resolve the algorithm Almost prime step by step in the Oforth programming language
You may also check:How to resolve the algorithm Binary search step by step in the Clojure programming language
You may also check:How to resolve the algorithm Check Machin-like formulas step by step in the Mathematica / Wolfram Language programming language
You may also check:How to resolve the algorithm Documentation step by step in the Objeck programming language