# 1. Introduction

The factorial of a non-negative integer n is the product of all positive integers less than or equal to n. It's denoted by n! and is defined as n! = n x (n-1) x (n-2) x ... x 1. For example, 5! = 5 x 4 x 3 x 2 x 1 = 120. In this blog post, we'll develop a Python program that calculates the factorial of a given number.

# 2. Program Overview

Our program will take an integer input from the user and then compute the factorial using a recursive approach. The base case is that the factorial of 0 is 1.

# 3. Code Program

``````def factorial(n):
"""Compute the factorial of n."""
# Base case: factorial of 0 is 1
if n == 0:
return 1
# Recursive case: n! = n * (n-1)!
return n * factorial(n-1)

# Input number from user
num = int(input("Enter a number: "))

# Ensure the number is non-negative
if num < 0:
else:
print(f"The factorial of {num} is {factorial(num)}.")
``````

### Output:

```For the input 5, the program will output: "The factorial of 5 is 120."
```

# 4. Step By Step Explanation

1. The factorial function calculates the factorial using recursion.

2. If the number is 0, it directly returns 1 (base case).

3. For any other number, it returns n multiplied by the factorial of (n-1). This recursion continues until n becomes 0.

4. In the main section, the program prompts the user for input. If the number is negative, it informs the user to enter a non-negative integer.

5. Otherwise, it calls the factorial function and displays the result.