Cod sursa(job #1567178)

Utilizator gra99Graur Gabriel gra99 Data 12 ianuarie 2016 23:00:58
Problema Factorial Scor 60
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.53 kb
Program fact;
 var p,lo,hi,te:longint;
     f,n:longint;
     a:array[1..100] of longint;
     fi,fo:text;
 begin
 assign(fi,'fact.in');reset(fi);
 assign(fo,'fact.out');rewrite(fo);
 read(fi,p);
 if p=0 then write(fo,1) else begin
 hi:=100000000;lo:=0;
 while (lo+1<hi) do
 begin
 n:=0;f:=1;te:=(lo+hi)div 2;
 while (f<te) do begin
 f:=f*5;
 n:=n+te div f;
 end;
 if n>p then hi:=te else if n<p then lo:=te;
 if (n=p) then break;
 end;
 if n>p then write(fo,'-1') else
 writeln(fo,te-te mod 5);
 end;
 close(fo);
 end.