36 lines
646 B
Text
36 lines
646 B
Text
MODULE TrialDivision;
|
|
FROM InOut IMPORT WriteCard, WriteLn;
|
|
|
|
CONST
|
|
Max = 100;
|
|
VAR
|
|
i: CARDINAL;
|
|
|
|
PROCEDURE prime(n: CARDINAL): BOOLEAN;
|
|
VAR
|
|
factor: CARDINAL;
|
|
BEGIN
|
|
IF n <= 4 THEN
|
|
RETURN (n = 2) OR (n = 3)
|
|
ELSIF n MOD 2 = 0 THEN
|
|
RETURN FALSE
|
|
ELSE
|
|
factor := 3;
|
|
WHILE factor * factor <= n DO
|
|
IF n MOD factor = 0 THEN
|
|
RETURN FALSE
|
|
END;
|
|
INC(factor, 2)
|
|
END
|
|
END;
|
|
RETURN TRUE
|
|
END prime;
|
|
|
|
BEGIN
|
|
FOR i := 0 TO Max DO
|
|
IF prime(i) THEN
|
|
WriteCard(i,3);
|
|
WriteLn
|
|
END
|
|
END
|
|
END TrialDivision.
|