program fatorial ;
var
  i, n : integer ;
  fat  : longint ; // tipo inteiro com mais bits

begin
  write ('Valor de n: ');
  read (n) ;

  fat := 1 ;
  i := 1 ;
  while (i <= n) do
  begin
    fat := fat * i ;
    i := i + 1 ;
  end ;

  writeln (n,'! = ', fat) ;
end.
