Rosetta Code:Solve a Task: Difference between revisions
Content deleted Content added
No edit summary |
|||
Line 14:
==Adding Code==
PROGRAM-ID. ARMSTRONG-NUMS.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 num-length PIC 9(2) value 0.
01 in-sum PIC 9(9) value 0.
01 counter PIC 9(9) value 0.
01 current-number PIC 9(9) value 0.
01 temp PIC 9(9) value 0.
01 modulo PIC 9(9) value 0.
01 answer PIC 9 .
PROCEDURE DIVISION.
MAIN-PROCEDURE.
DISPLAY "the first 25 armstrong numbers " .
MOVE 25 TO counter.
PERFORM UNTIL counter=0
PERFORM 000-ARMSTRONG-PARA
IF answer = 1
SUBTRACT 1 from counter
GIVING counter
DISPLAY current-number
END-IF
ADD 1 to current-number
END-PERFORM
STOP RUN.
000-ARMSTRONG-PARA.
MOVE ZERO to in-sum.
MOVE current-number to temp.
COMPUTE num-length =1+ Function Log10(temp)
PERFORM UNTIL temp=0
DIVIDE temp BY 10 GIVING temp
REMAINDER modulo
COMPUTE modulo=modulo**num-length
ADD modulo to in-sum GIVING in-sum
END-PERFORM.
IF current-number=in-sum
MOVE 1 TO answer
ELSE MOVE 0 TO answer
END-if.
END PROGRAM ARMSTRONG-NUMS.
=Going a little further=
|