Cod sursa(job #212780)

Utilizator FllorynMitu Florin Danut Flloryn Data 6 octombrie 2008 20:21:53
Problema Factorial Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.94 kb
program pascal;
var f,g:text;
    p,x:int64;
    ok:boolean;
    k:int64;

     procedure zero(aux:int64);
     begin
       k:=aux div 5;
       aux:=aux div 5;
       while aux<>0 do
         begin
            k:=k+aux div 5;
            aux:=aux div 5;
         end;

     end;

     procedure cautbin(a,b:int64);
     begin
       x:=(a+b) div 2;
       zero(x);
       if k=p then ok:=true
              else
              if a<b then
                begin
                if k<p then cautbin(x+1,b)
                         else cautbin(a,x-1);
                end
              else ok:=false;

     end;

begin
assign(f,'fact.in'); reset(f);
assign(g,'fact.out'); rewrite(g);
 read(f,p);
 if p=0 then write(g,1)
        else
           begin
            cautbin(1,500000000);
            if not ok then write(g,-1)
                      else write(g,(x div 5)*5);
            end;
close(f);
close(g);
end.