Cod sursa(job #17955)

Utilizator ioraIoana Radu iora Data 17 februarie 2007 15:37:23
Problema Factorial Scor 15
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.76 kb
var nr0,p5:array[1..200] of longint;
    n,p,r1,r2:longint;
    f1,f2:text;



procedure nr00;
begin
  n:=1;
  p5[n]:=1;
  nr0[n]:=0;
  repeat
    n:=n+1;
    nr0[n]:=p5[n-1]+nr0[n-1];
    p5[n]:=p5[n-1]*5;
  until nr0[n]>100000000;
end;

function totprogr(p:integer):integer;
var s,j:longint;
begin
  s:=0;
  while p<>0 do
    begin
      j:=1;
      while nr0[j]<=p do
        j:=j+1;

      j:=j-1;
      s:=s+ p5[j]*(p div nr0[j]);
      p:=p mod nr0[j]
    end;

  totprogr:=s;

end;

begin
  assign(f1,'fact.in');
  reset(f1);
  assign(f2,'fact.out');
  rewrite(f2);
  readln(f1,p);
  nr00;
  r1:=totprogr(p);
  r2:=totprogr(p+1);
  if r1=r2 then writeln(f2,-1)
           else writeln(f2,r1);
  close(f1);
  close(f2);
end.