Cod sursa(job #127851)

Utilizator valytgjiu91stancu vlad valytgjiu91 Data 25 ianuarie 2008 10:57:08
Problema Factorial Scor 30
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.05 kb
const p5:array[1..13] of longint=
      (5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140625, 1220703125);
var
   p:longint;
   x:longint;
   i,k,j,m:longint;
   ok:boolean;
   f,g:text;
Function n0(x:longint):longint;
var k,I:longint;
begin
     k:=0;
     i:=1;
     while (x/p5[i]>=1.0) and (i<=10) do
     begin
         k:=k+ x div p5[i];
         i:=i+1;
     end;
    n0:=k;
end;
begin
assign(f,'fact.in');
reset(f);
readln(f,p);
close(f);
assign(g,'fact.out');
rewrite(g);
if p=0 then write(g,'1')
else
   begin
     ok:=False;
     i:=p; j:=200000000;
     while Not ok And (i<=j) do
     begin
           m:=(i+j) Div 2;
           k:=n0(m);
           if k=p then begin
                            while m mod 5<>0 do
                              m:=m-1;
                            write(g,m);
                            ok:=True;
                       end
                      else if k>p then j:=m-1
                                  else i:=m+1;
     end;
 end;
close(g);
end.