Cod sursa(job #187165)

Utilizator alex-Palex puscas alex-P Data 1 mai 2008 10:51:13
Problema Factorial Scor 25
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.89 kb
var aux,n,m:longint;
    p:longint;
    f:text;

procedure citire;
var f:text;
begin
     assign(f,'fact.in');
     reset(f);
     read(f,p);
     close(f);
end;

function cin(m,x,putere:longint):longint;
begin
     if (p>=m)or(p>=m-putere) then cin:=cin(m+x,x*5,putere+1)
     else begin cin:=m-x div 5; n:=n+x div 5;
                if putere=3 then aux:=5; end
end;

function cinci(n:longint):longint;
begin
     if n mod 5 = 0 then cinci:=1+cinci(n div 5)
     else cinci:=0;
end;

begin
     citire;
     assign(f,'fact.out');
     rewrite(f);
     n:=0;m:=0;
     if p=0 then write (n)
     else begin while p>=5 do p:=p-cin(1,5,1);
                while p>0 do begin
                                   m:=m+5;
                                   p:=p-cinci(m);
                              end;
                write(f,n+m+aux);
          end;
     close(f);
end.