{
JANOS SZAMOSFALVI
the following routine uses a brute force approach with some
optimization; it took less than 3 minutes with a 286/12 to find
and print all primes up to 32768, about 50 seconds w/o printing
them; it becomes a bit slow when you get into a 6 digit range
}
PROGRAM Primes;
VAR
number,
max_div,
divisor : INTEGER;
prime : BOOLEAN;
BEGIN
writeln('Primes:');
writeln('2');
FOR number := 2 TO MAXINT DO
BEGIN
max_div := Round(sqrt(number) + 0.5);
prime := number MOD 2 <> 0;
divisor := 3;
WHILE prime AND (divisor < max_div) DO
BEGIN
prime := number MOD divisor <> 0;
divisor := divisor + 2;
END;
IF prime THEN
writeln(number);
END;
END.