<|im_start|>user
How can I calculate the factorial of a number efficiently?<|im_end|>
<|im_start|>assistant
```python
def factorial(n):
    if n < 0:
        raise ValueError("Factorial is not defined for negative numbers.")
    result = 1
    for i in range(2, n + 1):
        result *= i
    return result
```<|im_end|>

<|im_start|>user
How can I calculate the factorial of a number efficiently?<|im_end|>
<|im_start|>assistant
```python
def factorial(n):
    if n < 0:
        return None
    if n == 0 or n == 1:
        return 1
    return n * factorial(n - 1)
```<|im_end|>

How can I calculate the factorial of a number efficiently?