Factorial of a Number (original) (raw)

Last Updated : 9 Apr, 2026

Given a non-negative integers **n, compute the factorial of the given number. Factorial of **n is defined as n * (n -1) * (n - 2) * ... * 1. For n = 0, the factorial is defined as 1.

**Examples:

**Input: n = 5
**Output: 120
**Explanation: 5! = 5 * 4 * 3 * 2 * 1 = 120

**Input: n = 4
**Output: 24
**Explanation: 4! = 4 * 3 * 2 * 1 = 24

**Input: n = 0
**Output: 1

**Input: n = 1
**Output: 1

Try It Yourselfredirect icon

Table of Content

Iterative Solution - O(n) Time and O(1) Space

Factorial is computed by multiplying all integers from 1 to n using a loop. We initialize a variable **ans as 1 and update it in each iteration by multiplying with the current number. This approach avoids recursion and uses constant extra space.

**Step-by-step execution:

For n = 4

Final factorial = 24

C++ `

#include using namespace std;

int factorial(int n) {

    // Calculating factorial of number
    int ans = 1;
    for (int i = 2; i <= n; i++) {
        ans = ans * i;
    }
    return ans;
}

int main() { int num = 5; cout << factorial(num) << endl; return 0; }

C

#include <stdio.h>

int factorial(int n) {

// Calculating factorial of number
int ans = 1, i;
for (i = 2; i <= n; i++)
    ans *= i;
return ans;

}

int main() { int num = 5; printf("%d\n", factorial(num)); return 0; }

Java

class GfG {

public static int factorial(int n) {
    
    // Calculating factorial of number
    int ans = 1;
    for (int i = 2; i <= n; i++) {
        ans = ans * i;
    }
    return ans;
}

public static void main(String[] args)
{
    int num = 5;
    System.out.println( factorial(5));
}

}

Python

def factorial(n): ans = 1 i = 2

#Calculating factorial of number
while (i <= n):
    ans *= i
    i += 1
return ans

if name == "main": num = 5 print(factorial(num))

C#

using System;

class GFG {

public static int factorial(int n) {
    
    // Calculating factorial of number
    int ans = 1;
    for (int i = 2; i <= n; i++) {
        ans = ans * i;
    }
    return ans;
}

public static void Main()
{
    int n = 5;
    Console.WriteLine(factorial(n));
}

}

JavaScript

function factorial(n) {

// Calculating factorial of number
let ans = 1;
for (let i = 2; i <= n; i++) {
    ans = ans * i;
}
return ans;

}

// Driver method let num = 5; console.log(factorial(5));

`

Recursive Solution - O(n) Time and O(n) Space

Factorial is defined recursively as **n! = n × (n - 1)!. We define a base case where if n equals 0 or 1, the function returns 1. Otherwise, the function calls itself with n minus 1, breaking the problem into smaller subproblems until reaching the base case.

dsa

Function Call for Factorial of 5

C++ `

#include using namespace std;

int factorial(int n) {

// Calculating factorial of number
if (n == 0 || n == 1)
    return 1;
return n * factorial(n - 1);

}

int main() { int num = 5; cout << factorial(num) << endl; return 0; }

C

#include <stdio.h>

int factorial(int n) { // Calculating factorial of number if (n == 0) return 1; return n * factorial(n - 1); }

int main() { int num = 5; printf("%d\n", factorial(num)); return 0; }

Java

class GFG {

static int factorial(int n)
{
    // Calculating factorial of number
    if (n == 0 || n == 1)
        return 1;
    return n * factorial(n - 1);
}

public static void main(String[] args)
{
    int num = 5;
    System.out.println(factorial(num));
}

}

Python

def factorial(n):

Calculating factorial of number

if n == 0:
    return 1

return n * factorial(n - 1)

if name == "main":

num = 5
print(factorial(num))

C#

using System;

class GFG {

static int factorial(int n)
{
    // Calculating factorial of number
    if (n == 0)
        return 1;

    return n * factorial(n - 1);
}

public static void Main()
{
    int n = 5;
    Console.WriteLine(factorial(n));
}

}

JavaScript

function factorial(n) {

// Calculating factorial of number
if (n == 0)
    return 1;
return n * factorial(n - 1);

}

// Driver Code let num = 5; console.log(factorial(num));

`