def factorial_i(number):
    """
    Calculates the factorial of a number, using an iterative process.

    :param number: The number.
    :return: n!
    """

    # Check to make sure the argument is valid.
    if number < 0:
        raise ValueError

    # Go from 1 to n, multiplying up the numbers.
    total = 1
    for i in range(1, number + 1):
        total *= i

    return total