code: @GwtIncompatible // TODO
    public static long factorial(int n) {
      checkNonNegative("n", n);
      return (n < factorials.length) ? factorials[n] : Long.MAX_VALUE;
    }
docs: Returns {@code n!}, that is, the product of the first {@code n} positive integers, {@code 1} if
  {@code n == 0}, or {@link Long#MAX_VALUE} if the result does not fit in a {@code long}.
  
  @throws IllegalArgumentException if {@code n < 0}