Repository URL to install this package:
Version:
3.0.0 ▾
|
{ The Computer Language Shootout
http://shootout.alioth.debian.org
contributed by Joost van der Sluis
}
program nsieve;
{$mode fpc}{$I-}
var
n : longint;
procedure primes(n : longint); inline;
var
flags: PBoolean;
size,i,j,count : longint;
begin
size := 10000 shl n;
flags := getmem(size+1);
fillchar(flags^,memsize(flags),true);
count := 0;
for i := 2 to size do
if flags[i] then
begin
inc(count);
j := i + i;
while j <= size do begin
flags[j] := false;
inc(j, i);
end;
end;
writeln('Primes up to', size:9, count:9);
freemem(flags);
end;
begin
val(ParamStr(1), n);
primes(n);
primes(n-1);
primes(n-2);
end.