Cod sursa(job #12962)

Utilizator ioraIoana Radu iora Data 5 februarie 2007 12:53:08
Problema Factorial Scor 20
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.86 kb
var r1,p,i,p5,nr0,r,rest:longint;
    f1,f2:text;
begin
  assign(f1,'fact.in');
  reset(f1);
  assign(f2,'fact.out');
  rewrite(f2);
  read(f1,p);

  if p=0 then writeln(f2,1)
  else
  begin
  p5:=1;
  nr0:=0;
  repeat
    nr0:=nr0+p5;
    p5:=p5*5;
  until nr0+p5>p;
  r:=p div nr0*p5;

  rest:=p mod nr0;



  p5:=1;
  nr0:=0;
  repeat
    nr0:=nr0+p5;
    i:=i+1;
    p5:=p5*5;
  until nr0+p5>rest;

  r:=r+rest div nr0*p5;
  r1:=r;

  p:=p+1;
  p5:=1;
  nr0:=0;
  repeat
    nr0:=nr0+p5;
    i:=i+1;
    p5:=p5*5;
  until nr0+p5>p;

  r:=p div nr0*p5;

  rest:=p mod nr0;

  i:=0;
  p5:=1;
  nr0:=0;
  repeat
    nr0:=nr0+p5;
    i:=i+1;
    p5:=p5*5;
  until nr0+p5>rest;

  r:=r+rest div nr0*p5;

   if r=r1 then writeln(f2,-1)
           else writeln(f2,r1);
           end;
  close(f1);
  close(f2);
end.