Cod sursa(job #276405)

Utilizator philipPhilip philip Data 11 martie 2009 09:59:57
Problema Ciurul lui Eratosthenes Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.53 kb
var f,g:text;
    p:array[1..2000000] of boolean;
    nr,i,j,n:longint;

BEGIN
  assign(f,'ciur.in');
  reset(f);
  readln(f,n);
  for i:=2 to n div 2 do p[i*2]:=true;
  i:=3;
  nr:=1;
  while i*i<=n do begin
    if p[i]=false then begin
      inc(nr);
      j:=i*i;
      while j<=n do begin
        p[j]:=true;
        j:=j+i;
      end;
    end;
    i:=i+2;
  end;
  while i<=n do begin
    if p[i]=false then inc(nr);
    i:=i+2;
  end;
  assign(g,'ciur.out');
  rewrite(g);
  writeln(g,nr);
  close(g);
END.