SIEVE|
begin
comment library A0, A1, A5, A15;
integer p, m, n, r;
n := 10 000;
writetext(30, [[c_]number * of * primes * below:]);
write(30, format([nddddd_]), n);
writetext(30, [:]);
r := entier(2×sqrt(n));
begin
boolean array candidate [2 : n];
comment deal with 2 separately;
candidate[2] := true ;
for m := 4 step 2 until n do
candidate[m] := false;
comment now deal with the other factors;
for p := 3 step 2 until n do
candidate[p]:= true ;
for p := 3 step 2 until r do
begin
if candidate[p] then
for m := p × p step p until n do
candidate[m] := false
end;
m := 1; comment because 2 is prime;
for p := 3 step 2 until n do
if candidate[p] then m := m + 1;
end;
write(30, format([ndddddc_]), m);
close(30);
end
|