Cod sursa(job #155197)

Utilizator andumMorie Daniel Alexandru andum Data 11 martie 2008 19:51:10
Problema Ciurul lui Eratosthenes Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.91 kb
var f,g:text;
    p:array[2..2000000] of 0..1;
    n,i,j,d,m:longint;
begin
assign(f,'ciur.in');
reset(f);
readln(f,n);
close(f);
m:=n-1;
fillchar(p,n-1,1);
d:=2;
while d<=n do
begin
  while p[d]=0 do d:=d+1;
  j:=d+d;
  while j<=n do
    begin
     if p[j]=1 then
               begin
               dec(m);
               p[j]:=0;
               end;
     j:=j+d;
    end;
  d:=d+1;
end;
assign(g,'ciur.out');
rewrite(g);
write(g,m);                           {
if m<=1000 then
               for i:=2 to n do
                     begin
                     if p[i]=1 then write(g,i,' ');end
            else  for i:=2 to n do
                      if p[i]=1 then begin
                             if m<=1000 then
                                         write(g,i,' ')
                                         else dec(m);
                                         end;   }
close(g);
end.