Cod sursa(job #268744)

Utilizator Vlad_fiscaVlad Fisca Vlad_fisca Data 1 martie 2009 19:01:59
Problema Ciurul lui Eratosthenes Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.5 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.