def factorial(n: int) -> int: if n < 2: return 1 else: return n * factorial(n-1) def factorial_iter(n: int) -> int: fact = 1 for i in range(2, n+1): fact *= i return fact user_input = int(input("Insert number to calculate factorial for: ")) # Get absolute value to force integer into positive range user_input = abs(user_input) # Avoid recursion limit if user_input < 1000: print(f"Recursive factorial {user_input}: {factorial(user_input)}") else: print(f"Recursive factorial {user_input}: [Recursion limit error]") print(f"Iterative factorial {user_input}: {factorial_iter(user_input)}")