Skip to main content

Math Basics

Factorial of a Number

The factorial of a non-negative integer n is a mathematical function denoted by n! It represents the product of all positive integers from 1 up to n.

Examples : 

Input: 5
Output: 120
Explanation: 5! is equal to 5*4*3*2*1 = 120.

Input: 4
Output: 24
Explanation: 4! is equal to 4*3*2*1 = 24.

The basic definition of factorial is:  n! = n * (n-1) * (n-2) * (n-3) * ….. * 1.

By definition 0! is equal to 1.

To compute the factorial of a number n, start by initializing a variable result to 1. Then, use a loop that iterates from 1 to n, multiplying the result by each loop counter in each iteration. After completing the loop, the result will contain the factorial of n i.e. n! 

Code Implementation
C++ Code Try on Compiler!
// Function to calculate factorial using an iterative approach
long long factorial(int n) {
    // Initialize result as 1 (since factorial of 0 is 1)
    long long result = 1; 
    
    // Loop from 1 to n and multiply each number with result
    for (int i = 2; i <= n; i++) {
        result *= i;
    }
    // Return the calculated factorial
    return result; 
}

Java Code Try on Compiler!
public class Factorial {
    // Function to calculate factorial using an iterative approach
    public static long factorial(int n) {
        long result = 1; // Initialize result as 1
        for (int i = 2; i <= n; i++) {
            result *= i; // Multiply each number with result
        }
        return result; // Return the calculated factorial
    }
}

Python Code Try on Compiler!
# Function to calculate factorial using an iterative approach
def factorial(n):
    result = 1  # Initialize result as 1
    for i in range(2, n + 1):  # Loop from 2 to n
        result *= i  # Multiply each number with result
    return result  # Return the calculated factorial

Javascript Code Try on Compiler!
function factorial(n) {
    let result = 1; // Initialize result as 1
    for (let i = 2; i <= n; i++) { // Loop from 2 to n
        result *= i; // Multiply each number with result
    }
    return result; // Return the calculated factorial
}

Time Complexity : O(n)

The time complexity of computing the factorial of n is O(n). This is because the algorithm involves a single loop that iterates from 1 to n. A constant-time operation (multiplication and assignment) is performed in each iteration. Thus, the total time complexity is proportional to the number of iterations, n.

Space Complexity : O(n)

The space complexity of this algorithm is O(1). The algorithm uses a fixed amount of extra space regardless of the input size. It only requires a few variables (like the result and the loop counter), and the amount of memory needed does not grow with n.