rem - return the digital sum of n represented as a string function digitalsum(nstr = string) = integer var i, slen, sum = integer var ch = char slen = len(nstr) sum = 0 for i = 1 to slen ch = mid(nstr, i, 1) rem - don't process leading or embedded spaces, etc. if ch >= '0' and ch <= '9' then sum = sum + (ch - '0') next i end = sum var nstr = string var droot, pers = integer 0again rem - input1 does not advance to next line; control-C will exit input1 "What number"; nstr droot = digitalsum(nstr) pers = 1 while droot > 9 do begin droot = digitalsum(str$(droot)) pers = pers + 1 end print " digital root ="; droot; " persistence ="; pers goto 0again end