Cod sursa(job #187168)

Utilizator alex-Palex puscas alex-P Data 1 mai 2008 12:07:38
Problema Factorial Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.92 kb
var n,m,aux,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 aux <> putere then n:=n+5;
                aux:=putere
          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 ('1')
     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-5);
          end;
     close(f);
end.