Cod sursa(job #71764)

Utilizator adrianraduleaRadulea Adrian adrianradulea Data 11 iulie 2007 16:05:08
Problema Factorial Scor 85
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.69 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;
if li<>ls then begin
  ok:=false;
  while (not ok) and (li<=ls) do begin
    m:=(li+ls) div 2;
    if m mod 5<>0 then m:=m+3;
    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 else li:=m;
  end;
  if ok then write(g,m) else write(g,'-1');
end
else write(g,li);
close(g);
end.