RosettaCodeData/Task/Digital-root/MAD/digital-root.mad

24 lines
754 B
Plaintext

NORMAL MODE IS INTEGER
VECTOR VALUES INP = $I12*$
VECTOR VALUES OUTP = $I12,S1,I12*$
BASE = 10
R READ NUMBERS UNTIL 0 INPUT
RDNUM READ FORMAT INP,NUMBER
WHENEVER NUMBER.NE.0
SUMMAT PERS = 0
DSUM = 0
R CALCULATE ROOT AND PERSISTENCE
DIGIT DSUM = DSUM + NUMBER-NUMBER/BASE*BASE
NUMBER = NUMBER/BASE
PERS = PERS + 1
WHENEVER NUMBER.NE.0, TRANSFER TO DIGIT
NUMBER = DSUM
WHENEVER NUMBER.GE.10, TRANSFER TO SUMMAT
PRINT FORMAT OUTP,DSUM,PERS
TRANSFER TO RDNUM
END OF CONDITIONAL
END OF PROGRAM