input: Write a function to calculate the factorial of a number using recursion. The function should return 1 if the input number is 0, and for any other number, it should return the product of the number and the factorial of the number minus one. The function should be named `factorial`.
  
  assert factorial(0)==1
  assert factorial(1)==1
  assert factorial(5)==120
  assert factorial(3)==6
  assert factorial(10)==3628800
output: def factorial(n):
      if n == 0:
          return 1
      else:
          return n * factorial(n - 1)