37 lines
613 B
Text
37 lines
613 B
Text
MODULE AntiPrimes EXPORTS Main;
|
|
|
|
IMPORT IO,Fmt;
|
|
|
|
CONST
|
|
Amount = 20;
|
|
|
|
VAR
|
|
Max,Seen,N,F:CARDINAL;
|
|
|
|
PROCEDURE Factors(N:CARDINAL):CARDINAL =
|
|
VAR
|
|
Facts:CARDINAL;
|
|
BEGIN
|
|
IF N < 2 THEN RETURN 1 END;
|
|
Facts := 2;
|
|
FOR Div := 2 TO N DIV 2 DO
|
|
IF N MOD Div = 0 THEN INC(Facts) END;
|
|
END;
|
|
RETURN Facts;
|
|
END Factors;
|
|
|
|
BEGIN
|
|
Max := 0;
|
|
Seen := 0;
|
|
N := 1;
|
|
WHILE Seen < Amount DO
|
|
F := Factors(N);
|
|
IF F > Max THEN
|
|
IO.Put(Fmt.F("%5s",Fmt.Int(N)));
|
|
Max := F;
|
|
INC(Seen);
|
|
IF Seen MOD 10 = 0 THEN IO.Put("\n") END;
|
|
END;
|
|
INC(N);
|
|
END;
|
|
END AntiPrimes.
|