Cod sursa(job #263782)

Utilizator Teodor94Teodor Plop Teodor94 Data 20 februarie 2009 19:55:39
Problema Ciurul lui Eratosthenes Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.52 kb
var f,g:text;  
    s:array[1..2000000] of boolean;  
    n,i,k,nr:longint;  
begin  
  assign(f,'ciur.in'); reset(f);  
  assign(g,'ciur.out'); rewrite(g);  
  readln(f,n);  
  nr:=n-1;  
  fillchar(s,sizeof(s),true);  
  for i:=2 to trunc(sqrt(n)) do  
    if s[i]=true then  
      begin  
        k:=i+i;  
        while k<=n do  
          begin  
            if s[k]=true then dec(nr);  
            s[k]:=false;  
            k:=k+i;  
          end;  
     end;  
  writeln(g,nr);  
  close(g);  
end.