Cod sursa(job #1567270)

Utilizator gra99Graur Gabriel gra99 Data 13 ianuarie 2016 00:42:09
Problema Factorial Scor 90
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.6 kb
Program fact;
 var p,lo,hi,te:longint;
     f,n: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:=1000000000;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');
 while n=p do begin
 dec(te);
 n:=0;f:=1;
 while (f<te) do begin
 f:=f*5;
 n:=n+te div f;
 end;
 end;
 write(fo,te+1);
 end;
 close(fo);
 end.