39 lines
890 B
Plaintext
39 lines
890 B
Plaintext
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
|