Cod sursa(job #61458)

Utilizator bogdan88Bogdan Popescu bogdan88 Data 19 mai 2007 16:41:07
Problema Factorial Scor 20
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.91 kb
var sol:array[1..40000000]of int64;
    s,i,ct,rez,val,st,dr,mijloc:longint;
    fi,fo:text;
begin
     assign(fi,'fact.in'); reset(fi);
     assign(fo,'fact.out'); rewrite(fo);
     read(fi,val);
     st:=1; dr:=3000000;
     while st<=dr do
        begin
             mijloc:=(st+dr) div 2;
             ct:=5;
             while ct<=mijloc do
                begin
                     sol[mijloc]:=sol[mijloc]+trunc(mijloc/ct);
                     ct:=ct*5;
                end;
             if sol[mijloc]=val then begin rez:=mijloc; break; end
                else
                    if sol[mijloc]>val then dr:=mijloc-1
                                       else st:=mijloc+1;
        end;
     if (rez mod 10)<5 then rez:=(rez div 10)*10
                       else rez:=(rez div 10)*10+5;
     if rez=0 then writeln(fo,'-1') else
     writeln(fo,rez);
     close(fi);
     close(fo);
end.