input: Write a function that takes an integer as input and prints out its factorial. The function should recursively calculate the factorial and handle edge cases where the input is 0 or 1.
  
  def factorial(num):
      if num <= 1:
          return 1
      else:
          return num * factorial(num - 1)
  
  n = int(input("Enter a number: "))
  print("Factorial of", n, "is", factorial(n))
  
  assert factorial(7) == 5040
  assert factorial(0) == 1
  assert factorial(1) == 1
  assert factorial(5) == 120
  assert factorial(10) == 3628800
  assert factorial(-1) == 1
output: def factorial(num):
      if num <= 1:
          return 1
      else:
          return num * factorial(num - 1)