Cod sursa(job #52076)

Utilizator M@2Te4iMatei Misarca M@2Te4i Data 17 aprilie 2007 18:31:21
Problema Factorial Scor 60
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.74 kb
var a,z,p:int64;
    li,lf:int64;
    w:int64;

function nrzerouri(a:int64):int64;
var i,q:int64;
begin
i:=5;
q:=0;
while a div i>0 do
      begin
      q:=q+a div i;
      i:=i*5;
      end;
nrzerouri:=q;
end;

procedure cautare;
begin
li:=1;
lf:=100000001;
z:=-1;
while li<=lf do
      begin
      a:=(li+lf)div 2;
      w:=nrzerouri(a);
      if w>=p then
         begin
         if w=p then
            z:=a;
         lf:=a-1;
         end else li:=a+1;
      end;
end;

procedure scriere;
begin
assign(output,'fact.out');
rewrite(output);
write(z);
close(output);
end;

procedure citire;
begin
assign(input,'fact.in');
reset(input);
read(p);
close(input);
end;

begin
citire;
cautare;
scriere;
end.