COMMENT

{{task}}

An [[wp:Abundant_number|Abundant number]] is a number '''n''' for which the  ''sum of divisors''  '''(n) > 2n''',
<br>or,  equivalently,  the  ''sum of proper divisors''  (or aliquot sum)    '''s(n) > n'''.


;E.G.:
'''12'''  is abundant, it has the proper divisors   '''1,2,3,4 <small>&</small> 6'''   which sum to  '''16'''  ( > '''12''' or '''n'''); 
<br>   or alternately,  has the sigma sum of  '''1,2,3,4,6 <small>&</small> 12'''  which sum to  '''28'''  ( > '''24''' or '''2n''').


Abundant numbers are common, though '''even''' abundant numbers seem to be much more common than '''odd''' abundant numbers. 

To make things more interesting, this task is specifically about finding  ''odd abundant numbers''.


;Task
*Find and display here: at least the first 25 abundant odd numbers and either their proper divisor sum or sigma sum.
*Find and display here: the one thousandth abundant odd number and either its proper divisor sum or sigma sum.
*Find and display here: the first abundant odd number greater than one billion (10<sup>9</sup>) and either its proper divisor sum or sigma sum.


;References:
:*  [[oeis:A005231|OEIS:A005231: Odd abundant numbers (odd numbers n whose sum of divisors exceeds 2n)]]
:*  American Journal of Mathematics, Vol. 35, No. 4 (Oct., 1913), pp. 413-422
:*   - Finiteness of the Odd Perfect and Primitive Abundant Numbers with n Distinct Prime Factors (LE Dickson)
<br><br>

COMMENT

PROGRAM abundant CONTEXT VOID
USE standard
BEGIN
    # find some abundant odd numbers - numbers where the sum of the proper    #
    #                                  divisors is bigger than the number     #
    #                                  itself                                 #

    # returns the sum of the proper divisors of n                             #
    PROC divisor sum = ( INT n )INT:
    BEGIN
        INT sum := 1;
        FOR d FROM 2 TO ENTIER sqrt( n ) DO
            IF n MOD d = 0 THEN
                sum +:= d;
                IF INT other d := n OVER d;
                   other d /= d
                THEN
                    sum +:= other d
                FI
            FI
        OD;
        sum
    END # divisor sum # ;
    # find numbers required by the task                                       #
    BEGIN
        # first 25 odd abundant numbers                                       #
        INT odd number := 1;
        INT a count    := 0;
        INT d sum      := 0;
        print( ( "The first 25 abundant odd numbers:", newline ) );
        WHILE a count < 25 DO
            IF ( d sum := divisor sum( odd number ) ) > odd number THEN
                a count +:= 1;
                print( ( whole( odd number, -6 )
                       , " proper divisor sum: "
                       , whole( d sum, 0 )
                       , newline
                       )
                     )
            FI;
            odd number +:= 2
        OD;
        # 1000th odd abundant number                                          #
        WHILE a count < 1 000 DO
            IF ( d sum := divisor sum( odd number ) ) > odd number THEN
                a count := a count + 1
            FI;
            odd number +:= 2
        OD;
        print( ( "1000th abundant odd number:"
               , newline
               , "    "
               , whole( odd number - 2, 0 )
               , " proper divisor sum: "
               , whole( d sum, 0 )
               , newline
               )
             );
        # first odd abundant number > one billion                             #
        odd number := 1 000 000 001;
        BOOL found := FALSE;
        WHILE NOT found DO
            IF ( d sum := divisor sum( odd number ) ) > odd number THEN
                found  := TRUE;
                print( ( "First abundant odd number > 1 000 000 000:"
                       , newline
                       , "    "
                       , whole( odd number, 0 )
                       , " proper divisor sum: "
                       , whole( d sum, 0 )
                       , newline
                       )
                     )
            FI;
            odd number +:= 2
        OD
    END
END
FINISH