Cod sursa(job #611585)

Utilizator teban.mihaiTeban Mihai Andrei teban.mihai Data 2 septembrie 2011 00:14:13
Problema Factorial Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.76 kb
var p,st,dr,mij:longint;
    f,g:text;

function  zero(mij:longint):longint;
var p:longint;
begin
  p:=0;
  while mij<>0 do
  begin
    p:=p+mij div 5;
    mij:=mij div 5;
  end;
  zero:=p;
end;

begin
  assign(f,'fact.in');
  reset(f);
  assign(g,'fact.out');
  rewrite(g);
  readln(f,p);
  if p=0 then writeln(g,'1')
  else
  begin
    st:=0;
    dr:=1000000000;
    while (st<=dr) do
    begin
      mij:=(st+dr) div 2;
      if zero(mij)=p then
        break;
      if zero(mij)<p then
        st:=mij+1
      else
        if zero(mij)>p then
          dr:=mij-1;
    end;
    while mij mod 5<>0 do
      dec(mij);
    if zero(mij)=p then
      writeln(g,mij)
    else
      writeln(g,'-1');
  end;
  close(f);
  close(g);
end.