EnableExplicit Procedure ListProperDivisors(Number, List Lst()) If Number < 2 : ProcedureReturn : EndIf Protected i For i = 1 To Number / 2 If Number % i = 0 AddElement(Lst()) Lst() = i EndIf Next EndProcedure Procedure.i CountProperDivisors(Number) If Number < 2 : ProcedureReturn 0 : EndIf Protected i, count = 0 For i = 1 To Number / 2 If Number % i = 0 count + 1 EndIf Next ProcedureReturn count EndProcedure Define n, count, most = 1, maxCount = 0 If OpenConsole() PrintN("The proper divisors of the following numbers are : ") PrintN("") NewList lst() For n = 1 To 10 ListProperDivisors(n, lst()) Print(RSet(Str(n), 3) + " -> ") If ListSize(lst()) = 0 Print("(None)") Else ForEach lst() Print(Str(lst()) + " ") Next EndIf ClearList(lst()) PrintN("") Next For n = 2 To 20000 count = CountProperDivisors(n) If count > maxCount maxCount = count most = n EndIf Next PrintN("") PrintN(Str(most) + " has the most proper divisors, namely " + Str(maxCount)) PrintN("") PrintN("Press any key to close the console") Repeat: Delay(10) : Until Inkey() <> "" CloseConsole() EndIf