def compute_factorial(n: int) -> int:
    """
    Compute n-factorial.
    :param n: Number to compute factorial for
    :return: n-factorial
    """
    if (not isinstance(n, int)) or (n < 0):
        raise ValueError("compute_factorial() only accepts non-negative integer values.")
    factorial = 1
    for i in range(1, n + 1):
        factorial *= i
    return factorial