Cod sursa(job #526252)

Utilizator gicu_01porcescu gicu gicu_01 Data 27 ianuarie 2011 20:44:02
Problema Factorial Scor 80
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.65 kb
var a,b:array[1..100]of int64;
    n,k:int64;

procedure putere;
var i:byte;k,p:int64;
begin
 k:=1;p:=0;
 for i:=1 to 11 do
  begin
   k:=k*5;
   p:=p*5+1;
   a[i]:=k;
   b[i]:=p;
  end;
end;

procedure init;
var i:byte;
begin
 k:=0;
 for i:=11 downto 1 do
  begin
   k:=k+a[i]*(n div b[i]);
   if n div b[i]>=5 then begin k:=-1; break; end;
   n:=n mod b[i];
  end;
end;

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

procedure afis;
var f:text;
begin
 assign(f,'fact.out');
 rewrite(f);
 writeln(f,k);
 close(f);
end;

begin
 citire;
 putere;
 init;
 afis;
end.