Cod sursa(job #235110)

Utilizator valytgjiu91stancu vlad valytgjiu91 Data 22 decembrie 2008 21:36:01
Problema Factorial Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.38 kb
    const p5:array[1..13] of longint=  
         (5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140625, 1220703125);  
   var  
      p:longint;  
   { fara    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<=13) 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;  
       { aici }  
        j:=MaxLOngInt;  
        while Not ok And (i<=j) do  
        begin  
              m:=(i+j) Div 2;  
              k:=n0(m);  
              if k=p then begin  
     
                               while n0(m)=k do  
                                 m:=m-1;  
                               write(g,m+1);  
                             ok:=True;  
                          end  
                         else if k>p then j:=m-1  
                                     else i:=m+1;  
        end;  
       { aici }  
      if i>j then write(g,'-1');  
    end;  
   close(g);  
   end.