Overview

Eratosthenes

The Sieve of Eratosthenes efficiently find all prime numbers up to a given limit.

Source Code

// The Sieve of Eratosthenes efficiently find all prime numbers up to a given limit.
procedure Sieve(limit : Integer);
var isPrime : array of Boolean;
begin
  isPrime.SetLength(limit + 1);
  for var i := 2 to limit do begin
    if isPrime[i] then continue;
    var j := i * i;
    while j <= limit do begin
      isPrime[j] := True;
      j += i;
    end;
  end;
  var count := 0;
  for var i := 2 to limit do if not isPrime[i] then begin
    Print(IntToStr(i) + ' ');
    Inc(count);
  end;
  PrintLn('');
  PrintLn('Total primes: ' + IntToStr(count));
end;
Sieve(50);

Result

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 
Total primes: 15
On this page