def revfac(f):
    """
    Takes a number (f) and returns the reverse factorial, if it has one.
    Returns reverse factorial, or None.
    """
    assert type(f) is int, "TypeError: f is not an integer."
    assert f >= 0
    if f == 0:
        return 1
    d = 1       # denominator
    r = f % d   # remainder
    while r == 0:
        if f == d:
            return d
        f /= d  # Update numerator
        d += 1  # Increase denominator
        r = f % d   # Update remainder
    return None # Unnecessarily explicit return


i = [120, 150, 3628800, 479001600, 6, 18]

for n in i:
    if revfac(n) is None:
        print (str(n) + "   NONE")
    else:
        print (str(n) + ' = ' + str(revfac(n)) + '!')