Cod sursa(job #374725)

Utilizator zseeZabolai Zsolt zsee Data 18 decembrie 2009 01:03:05
Problema Ciurul lui Eratosthenes Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.65 kb
program primeknig;
var ki,be:text;
    n,i,p,c:longint;
    v:^boolean;

begin
 assign(be,'ciur.in');
 assign(ki,'ciur.out');
 rewrite(ki);
 reset(be);
 readln(be,n);
 getmem(v,n);
 c:=0;
 for i:=4 to n do
   if (i mod 2 = 0)or(i mod 5 =0)or(i mod 3=0) then
      begin
       v[i]:=true;
       inc(c);
      end
       else v[i]:=false;
 v[1]:=true;
 v[2]:=false;
 v[3]:=false;
 v[5]:=false;
 p:=7;
 while p*p <= n do
  begin
   i:=2*p;
   for i:=2 to (n div p) do begin v[i*p]:=true;end;
   inc(p,2);
   while v[p] do inc(p,2);
  end;
 c:=0;
 for i:=2 to n do
  if not v[i] then
    inc(c);
 writeln(ki,c);
 close(ki);
end.