Cod sursa(job #71786)

Utilizator adrianraduleaRadulea Adrian adrianradulea Data 11 iulie 2007 17:02:10
Problema Factorial Scor 85
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.79 kb
var f,g:text;
    p,n,m,cifra,nr,li,ls:longint;
    ok:boolean;
begin
assign(f,'fact.in'); reset(f);
assign(g,'fact.out'); rewrite(g);
read(f,p);
n:=p*5;
ok:=false;
nr:=5;
while n div nr>0 do begin
    cifra:=cifra+n div nr;
    nr:=nr*5;
end;
ls:=n;
li:=n-(cifra-p)*5;
ok:=false;
nr:=5;
cifra:=0;
while li div nr>0 do begin
    cifra:=cifra+li div nr;
    nr:=nr*5;
end;
if cifra=p then write(g,li) else begin
while (not ok) and (li<=ls) do begin
  m:=(li+ls) div 2;
  if m mod 5<>0 then m:=m-2;
  nr:=5;
  cifra:=0;
  while m div nr>0 do begin
    cifra:=cifra+m div nr;
    nr:=nr*5;
  end;
  if cifra=p then ok:=true
             else if cifra>p then ls:=m+5 else li:=m-5;
end;
if p=0 then write(g,'1') else if ok then write(g,m) else write(g,'-1');
end;
close(g);
end.