DECLARE SUB Mult2 () DECLARE FUNCTION ShowNum$ () DEFINT A-Z DIM SHARED a(1 TO 1000) AS LONG, np, dec DIM SHARED b(1 TO 1000) AS LONG CLS dec = 5 a(1) = 1: np = 1 FOR i = 1 TO 2 ^ 6 LOCATE 1, 1: PRINT USING "#####> "; i; Mult2 LOCATE 2, 1 SELECT CASE INKEY$ CASE CHR$(27): EXIT FOR CASE " ": PRINT ShowNum$; END SELECT NEXT a(1) = a(1) + 1 PRINT ShowNum$ FOR i = 1 TO np: b(i) = a(i): NEXT FOR k = 1 TO 1000 PRINT k; div& = 128& * k + 1 PRINT div&; IF div& >= 10& ^ dec THEN PRINT "Max": SYSTEM FOR i = 1 TO np: a(i) = b(i): NEXT FOR i = np TO 1 STEP -1 x& = a(i) \ div& y& = a(i) MOD div& a(i) = x& IF y& > 0 THEN IF i = 1 THEN PRINT "Ndiv": er = -1: EXIT FOR ELSE a(i - 1) = a(i - 1) + y& * 10& ^ dec END IF END IF NEXT IF er THEN er = 0 ELSE PRINT ShowNum$: SYSTEM NEXT SYSTEM SUB Mult2 nbase& = 10& ^ dec FOR i = 1 TO np a(i) = a(i) * 2 NEXT FOR i = 1 TO np x = a(i) \ nbase& IF x > 0 THEN y& = a(i) MOD nbase& a(i + 1) = a(i + 1) + x a(i) = y& END IF NEXT IF x > 0 THEN np = np + 1 END SUB DEFLNG A-Z SUB QuickSort (Array(), left, right) i = left: j = right: test = Array((left + right) \ 2) DO WHILE (Array(i) < test): i = i + 1: WEND WHILE (test < Array(j)): j = j - 1: WEND IF i <= j THEN SWAP Array(i), Array(j) i = i + 1 j = j - 1 END IF LOOP WHILE i <= j IF left < j THEN QuickSort Array(), left, j IF i < right THEN QuickSort Array(), i, right END SUB DEFINT A-Z FUNCTION ShowNum$ x$ = "" n$ = "" FOR i = np TO 1 STEP -1 IF a(i) > 0 OR i < np THEN n$ = n$ + RIGHT$(x$ + LTRIM$(STR$(a(i))), dec) x$ = STRING$(dec, "0") END IF NEXT ShowNum$ = n$ END FUNCTION