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.