input: Write a function to demonstrate the concept of recursion by implementing a recursive function that calculates the factorial of a given number. If the given number is 0 or 1, return 1. Otherwise, return the product of the number and the factorial of the number minus one.
  
  def factorial(n):
     if n == 0 or n == 1:
        return 1
     else:
        return n * factorial(n - 1)
  
  assert factorial(5) == 120
  assert factorial(0) == 1
  assert factorial(1) == 1
  assert factorial(3) == 6
  
output: def factorial(n):
     if n == 0 or n == 1:
        return 1
     else:
        return n * factorial(n - 1)