Contributor: JANOS SZAMOSFALVI 
{
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.
 

AltStyle によって変換されたページ (->オリジナル) /