Cod sursa(job #55262)

Utilizator h_istvanHevele Istvan h_istvan Data 26 aprilie 2007 21:10:07
Problema Factorial Scor 80
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.89 kb
program fact;
var f:text;
    p,n,i,k,v:longint;

function szamol(x:longint):longint;
var i,e,h:longint;
begin
     e:=0;
     h:=5;
     while(h<=x) do
     begin
          e:=e+(x div h);
          h:=h*5;
     end;
     szamol:=e;
end;

begin
     assign(f,'fact.in');
     reset(f);
     readln(f,p);
     close(f);

     k:=1;
     v:=p;
     i:=p div 2;
     n:=0;
     while ((k+1 < v) and (n<>p))  do
     begin
          n:=szamol(5*i);
          if(n>p) then
          begin
               v:=i-1;
               i:=(k+v) div 2;
          end else
          if(n<p) then
          begin
               k:=i+1;
               i:=(k+v) div 2;
          end;
     end;
     n:=szamol(5*i);
     
     if n=0 then n:=1;
     
     assign(f,'fact.out');
     rewrite(f);
     if(n=p) then writeln(f,i*5)
             else writeln(f,-1);
     close(f);
end.