def fact_iter(n):
    """
    1. number of times around loop is n
    2. number of operations inside loop is a constant
    3. overall just O(n)

    >>> fact_iter(5)
    120
    >>> fact_iter(12)
    479001600
    >>> fact_iter(10)
    3628800
    >>> fact_iter(16)
    20922789888000
    >>> fact_iter(4)
    24
    """
    prod = 1
    for i in range(1, n + 1):
        prod *= i
    return prod