Cod sursa(job #404351)

Utilizator mimarcelMoldovan Marcel mimarcel Data 26 februarie 2010 08:11:33
Problema Ciurul lui Eratosthenes Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.63 kb
const maxn=2000000;
type sita=array[2..maxn]of boolean;
var n,p,q,nr:int64;
    v:sita;
begin
assign(input,'ciur.in');
reset(input);
assign(output,'ciur.out');
rewrite(output);
readln(n);
p:=2;
nr:=0;

if n>2 then
  begin
  nr:=1;
  v[p]:=true;
  q:=4;
  while q<=n do begin
                v[q]:=true;
                q:=q+2;
                end;
  p:=3;
  end;

while p<=n do
  begin
  inc(nr);
  v[p]:=true;
  q:=p*p;
  while q<=n do begin
                v[q]:=true;
                q:=q+p;
                end;
  while(p<=n)and(v[p])do inc(p,2);
  end;

writeln(nr);
close(output);
close(input);
end.