SUB digitalroot (what) LET dr = ABS(what) IF dr > 10 THEN LET ap = 0 DO LET ap = ap + 1 DO WHILE dr <> 0 LET t = t + REMAINDER(dr, 10) LET dr = IP(dr / 10) LOOP LET dr = t LET t = 0 LOOP WHILE dr > 9 END IF PRINT what, "Additive persistance ="; ap, "Digital root ="; dr END SUB CALL digitalroot (627615) CALL digitalroot (39390) CALL digitalroot (588225) CALL digitalroot (393900588225) END