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

Source code in the bcpl programming language

get "libhdr"
manifest $( maximum = 20000 $)

let calcpdivs(p, max) be
$(  for i=0 to max do p!i := 0
    for i=1 to max/2
    $(  let j = i+i
        while 0 < j <= max 
        $(  p!j := p!j + i
            j := j + i
        $)
    $)
$)

let classify(p, n, def, per, ab) be
$(  let z = 0<=p!n def, p!n=n -> per, ab
    !z := !z + 1
$)

let start() be
$(  let p = getvec(maximum)
    let def, per, ab = 0, 0, 0
    
    calcpdivs(p, maximum)
    for i=1 to maximum do classify(p, i, @def, @per, @ab)
    
    writef("Deficient numbers: %N*N", def)
    writef("Perfect numbers: %N*N", per)
    writef("Abundant numbers: %N*N", ab)
    freevec(p)
$)

  

You may also check:How to resolve the algorithm Events step by step in the PureBasic programming language
You may also check:How to resolve the algorithm Sieve of Eratosthenes step by step in the Visual Basic .NET programming language
You may also check:How to resolve the algorithm Golden ratio/Convergence step by step in the Nim programming language
You may also check:How to resolve the algorithm Greatest subsequential sum step by step in the SparForte programming language
You may also check:How to resolve the algorithm Tropical algebra overloading step by step in the Phix programming language