input: Write a function to calculate the factorial of a given number `n`. If `n` is 0, the function should return 1. The function should use recursion to achieve the result.
  def factorial(n):
   if n == 0:
    return 1
   else:
    return n * factorial(n-1)
  
  assert factorial(0)==1
  assert factorial(1)==1
  assert factorial(5)==120
  assert factorial(10)==3628800
output: def factorial(n):
   if n == 0:
    return 1
   else:
    return n * factorial(n-1)