34 lines
671 B
Text
34 lines
671 B
Text
MODULE Antiprimes;
|
|
FROM InOut IMPORT WriteCard, WriteLn;
|
|
|
|
CONST Amount = 20;
|
|
VAR max, seen, n, f: CARDINAL;
|
|
|
|
PROCEDURE factors(n: CARDINAL): CARDINAL;
|
|
VAR facs, div: CARDINAL;
|
|
BEGIN
|
|
IF n<2 THEN RETURN 1; END;
|
|
facs := 2;
|
|
FOR div := 2 TO n DIV 2 DO
|
|
IF n MOD div = 0 THEN
|
|
INC(facs);
|
|
END;
|
|
END;
|
|
RETURN facs;
|
|
END factors;
|
|
|
|
BEGIN
|
|
max := 0;
|
|
seen := 0;
|
|
n := 1;
|
|
WHILE seen < Amount DO
|
|
f := factors(n);
|
|
IF f > max THEN
|
|
WriteCard(n,5);
|
|
max := f;
|
|
INC(seen);
|
|
IF seen MOD 10 = 0 THEN WriteLn(); END;
|
|
END;
|
|
INC(n);
|
|
END;
|
|
END Antiprimes.
|