Cod sursa(job #139066)

Utilizator Pepelea_FlaviuFlaviu Pepelea Pepelea_Flaviu Data 19 februarie 2008 17:56:09
Problema Factorial Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.89 kb
var sol:int64;
    s,ct,rez,val,st,dr,mijloc:int64;
    fi,fo:text;
    uc:byte;
begin
     assign(fi,'fact.in'); reset(fi);
     assign(fo,'fact.out'); rewrite(fo);
     read(fi,val);
     st:=1; dr:=3000000000;
     while st<=dr do
        begin
             sol:=0; ct:=5; mijloc:=(st+dr) div 2;
             while ct<=mijloc do
                begin sol:=sol+trunc(mijloc/ct); ct:=ct*5; end;
             if sol=val then begin rez:=mijloc; break; end
                else
                    if sol>val then dr:=mijloc-1
                               else st:=mijloc+1;
        end;
     if rez=0 then writeln(fo,'-1')
        else
            begin uc:=rez mod 10;
                  if uc<5 then rez:=(rez div 10)*10
                          else rez:=(rez div 10)*10+5;
                  if rez=0 then rez:=1; end;
     writeln(fo,rez);
     close(fi); close(fo);
end.