FUNCTION CountProperDivisors (number) IF number < 2 THEN LET CountProperDivisors = 0 LET count = 0 FOR i = 1 TO INT(number / 2) IF MOD(number, i) = 0 THEN LET count = count + 1 NEXT i LET CountProperDivisors = count END FUNCTION SUB ListProperDivisors (limit) IF limit < 1 THEN EXIT SUB FOR i = 1 TO limit PRINT i; " ->"; IF i = 1 THEN PRINT " (None)"; FOR j = 1 TO INT(i / 2) IF MOD(i, j) = 0 THEN PRINT " "; j; NEXT j PRINT NEXT i END SUB LET most = 1 LET maxCount = 0 PRINT "The proper divisors of the following numbers are: "; CHR$(10) CALL LISTPROPERDIVISORS (10) FOR n = 2 TO 20000 LET count = CountProperDivisors(n) IF count > maxCount THEN LET maxCount = count LET most = n END IF NEXT n PRINT PRINT most; "has the most proper divisors, namely"; maxCount END