Cod sursa(job #573347)

Utilizator originalalexmarin alexandru originalalex Data 6 aprilie 2011 10:33:52
Problema Ciurul lui Eratosthenes Scor 30
Compilator fpc Status done
Runda Arhiva educationala Marime 0.62 kb
program ciur;
type vector=array [1..1000000] of integer;
var f1,f2:text;
    v:vector;
    n,i,p,j,d:longint;
    prim:boolean;
begin
assign(f1,'ciur.in');
reset(f1);
read(f1,n);
close(f1);
assign(f2,'ciur.out');
rewrite(f2);
for i:=1 to n do
  v[i]:=1;
for i:=2 to n  do
begin
if v[i]=1 then
  begin
  prim:=true;
  d:=2;
  while (d<=sqrt(i)) and (prim=true) do
    begin
    if i mod d=0 then
      prim:=false;
    d:=d+1;
    end;
  if prim=true then
    begin
    j:=i;
    p:=p+1;
    repeat
      j:=2*j;
      v[j]:=0;
    until j>n;
    end;
  end;
end;
write(f2,p);
close(f2);
end.