Cod sursa(job #696450)

Utilizator BogdanLucaSortan Luca Bogdan BogdanLuca Data 28 februarie 2012 18:36:05
Problema Factorial Scor 95
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.33 kb
var
   f:text;
   n,x,j,nr0,copie,i,a,b,mij:longint;

Function numar(x:longint):longint;
var putere, suma:longint;
begin
     putere:=5;
     suma:=0;
     while putere<=x do begin
                             suma:=suma+x div putere;
                             putere:=putere*5;
                        end;
     numar:=suma;
End;

Begin
     assign(f,'fact.in');
     reset(f);
     readln(f,n);
     close(f);
     a:=5;
     b:=400000015;

     if n=0 then mij:=1
            else begin
                      while abs(b-a)>5 do begin
                                               mij:=(a+b)div 2;
                                               if ((mij mod 10>0) and (mij mod 10<5)) then mij:=mij-mij mod 10
                                               else if mij mod 10 >6 then mij:=mij-mij mod 10 +5;
                                               if numar(mij)>n then b:=mij-5
                                               else a:=mij;
     end;
     a:=a div 5;
     b:=b div 5;
     for i:=a to b do if numar(i*5)=n then begin
                                                break;
                                           end;
     end;
     assign(f,'fact.out');
     rewrite(f);
     if n=0 then writeln(f,i)
     else if numar(i*5)=n then writeln(f,i*5)
     else writeln(f,-1);
     close(f);
End.