How to resolve the algorithm Abundant, deficient and perfect number classifications step by step in the D programming language

Published on 12 May 2024 09:40 PM
#D

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

Source code in the d programming language

void main() /*@safe*/ {
    import std.stdio, std.algorithm, std.range;

    static immutable properDivs = (in uint n) pure nothrow @safe /*@nogc*/ =>
        iota(1, (n + 1) / 2 + 1).filter!(x => n % x == 0 && n != x);

    enum Class { deficient, perfect, abundant }

    static Class classify(in uint n) pure nothrow @safe /*@nogc*/ {
        immutable p = properDivs(n).sum;
        with (Class)
            return (p < n) ? deficient : ((p == n) ? perfect : abundant);
    }

    enum rangeMax = 20_000;
    //iota(1, 1 + rangeMax).map!classify.hashGroup.writeln;
    iota(1, 1 + rangeMax).map!classify.array.sort().group.writeln;
}


  

You may also check:How to resolve the algorithm Loops/Do-while step by step in the Kotlin programming language
You may also check:How to resolve the algorithm Parametric polymorphism step by step in the J programming language
You may also check:How to resolve the algorithm Idiomatically determine all the lowercase and uppercase letters step by step in the REXX programming language
You may also check:How to resolve the algorithm Leap year step by step in the 11l programming language
You may also check:How to resolve the algorithm Sum and product of an array step by step in the Elixir programming language