Cod sursa(job #406194)

Utilizator mimarcelMoldovan Marcel mimarcel Data 1 martie 2010 12:17:56
Problema Ciurul lui Eratosthenes Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.63 kb
//23:24 27.02.2010
//Moldovan Ilie Marcel
//Ciurul lui Eratosthenes

const maxn=2000000;
type vector=array[1..maxn shr 1]of boolean;
var n,nr,i:longint;
    j:int64;
    v:vector;//v[i]=false daca 2*i+1 este prim

begin
assign(input,'ciur.in');
reset(input);
assign(output,'ciur.out');
rewrite(output);
readln(n);

nr:=1;
i:=3;
while i<=n do
  begin
  if v[i shr 1]=false then
    begin
    inc(nr);
    j:=int64(i)*i;
    while j<=n do begin
                  v[j shr 1]:=true;
                  j:=j+i shl 1;
                  end;
    end;
  i:=i+2;
  end;

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