46 lines
1.3 KiB
Plaintext
46 lines
1.3 KiB
Plaintext
PROGRAM "ArithmeticNum"
|
|
|
|
DECLARE FUNCTION Entry ()
|
|
|
|
FUNCTION Entry ()
|
|
N = 1 : ArithCnt = 0 : CompCnt = 0
|
|
|
|
PRINT "The first 100 arithmetic numbers are:"
|
|
DO
|
|
Div = 1 : DivCnt = 0 : Sum = 0
|
|
DO WHILE 1
|
|
Quot = N / Div
|
|
IF Quot < Div THEN EXIT DO
|
|
IF N MOD Div = 0 THEN
|
|
IF Quot = Div THEN 'N is a square
|
|
Sum = Sum + Quot
|
|
INC DivCnt
|
|
EXIT DO
|
|
ELSE
|
|
Sum = Sum + Div + Quot
|
|
DivCnt = DivCnt + 2
|
|
END IF
|
|
END IF
|
|
INC Div
|
|
LOOP
|
|
|
|
IF Sum MOD DivCnt = 0 THEN 'N is arithmetic
|
|
INC ArithCnt
|
|
IF ArithCnt <= 100 THEN
|
|
PRINT FORMAT$("####", N);
|
|
IF ArithCnt MOD 20 = 0 THEN PRINT
|
|
END IF
|
|
IF DivCnt > 2 THEN INC CompCnt
|
|
SELECT CASE ArithCnt
|
|
CASE 1e3
|
|
PRINT "\nThe "; FORMAT$("#######", ArithCnt); "th arithmetic number is"; FORMAT$("####,###", N); " up to which"; FORMAT$("###,###", CompCnt); " are composite."
|
|
CASE 1e4, 1e5, 1e6
|
|
PRINT "The "; FORMAT$("#######", ArithCnt); "th arithmetic number is"; FORMAT$("####,###", N); " up to which"; FORMAT$("###,###", CompCnt); " are composite."
|
|
END SELECT
|
|
END IF
|
|
INC N
|
|
LOOP UNTIL ArithCnt >= 1e6
|
|
|
|
END FUNCTION
|
|
END PROGRAM
|