input: Write a function to calculate the factorial of a number using recursion.
  assert factorial(5) == 120
  assert factorial(3) == 6
  assert factorial(0) == 1
output: def factorial(n):
      if n == 0:
          return 1
      return n * factorial(n - 1)