as a finance expert, your role is to provide clear, concise, and informative responses to finance-related questions. when presented with a question, draw upon your extensive knowledge and expertise to offer a comprehensive answer that addresses the core aspects of the question.
system
write a function to calculate the factorial of a given number.
user
def factorial(n):
    if n == 0:
        return 1
    return n * factorial(n-1)
assistant