Cod sursa(job #13303)

Utilizator ioraIoana Radu iora Data 6 februarie 2007 08:34:49
Problema Factorial Scor 85
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.77 kb
var p5,nr0:array[1..300] of longint;
    n,i,r,p,n0,put:longint;
    f1,f2:text;
begin
     assign(f1,'fact.in');
     reset(f1);
     assign(f2,'fact.out');
     rewrite(f2);

     readln(f1,p);
     if p=0 then writeln(f2,-1)
     else
     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 p5[n]+nr0[n]>p;

     r:=p div nr0[n]*p5[n];
     p:=p mod nr0[n];
     while p<>0 do
       begin
         n0:=0;
         put:=0;
         for i:=1 to n-1 do
           if nr0[i+1]>p then begin n0:=nr0[i];put:=p5[i];break  end;

         r:=r+ p div n0*put;
         p:=p mod n0;
       end;
     writeln(f2,r);
     end;
     close(f1);
     close(f2);
end.