Join our newsletter for the latest updates.

C++ Program to Find Factorial

The factorial of a positive integer n is equal to 1*2*3*...n. You will learn to calculate the factorial of a number using for loop in this example.

To understand this example, you should have the knowledge of the following C++ programming topics:


The factorial of a number is the product of all the integers from 1 up to that number. The factorial can only be defined for positive integers.

The factorial of a negative number doesn't exist. And the factorial of 0 is 1.

For example,

The factorial of a positive number n, say 5, is denoted by 5! and is given by:

5! = 1 * 2 * 3 * 4 * 5 = 120

So, the Mathematical logic for factorial is:

n! = 1 * 2 * 3 * ... * n
n! = 1 if n = 0 or n = 1

In this program below, the user is asked to enter a positive integer. Then the factorial of that number is computed and displayed on the screen.


Example: Find Factorial of a given number

#include <iostream>
using namespace std;

int main() {
    int n;
    long double factorial = 1.0;

    cout << "Enter a positive integer: ";
    cin >> n;

    if (n < 0)
        cout << "Error! Factorial of a negative number doesn't exist.";
    else {
        for(int i = 1; i <= n; ++i) {
            factorial *= i;
        }
        cout << "Factorial of " << n << " = " << factorial;    
    }

    return 0;
}

Output

Enter a positive integer: 12
Factorial of 12 = 479001600

In this program, we take a positive integer from the user and compute the factorial using for loop. We print an error message if the user enters a negative number.

We declare the type of factorial variable as long double since the factorial of a number may be very large.

When the user enters a positive integer (say 4), for loop is executed and computes the factorial. The value of i is initially 1.

The program runs until the statement i <= n becomes false. This prints Factorial of 4 = 24 on the screen. Here’s how the program executes when n = 4.

i <= 4 fact *= i
1 <= 4 fact = 1 * 1 = 1
2 <= 4 fact = 1 * 2 = 2
3 <= 4 fact = 2 * 3 = 6
4 <= 4 fact = 6 * 4 = 24
5 <= 4 Loop terminates.

This program can calculate the factorial only up to 1754 or some integer value close to it. Beyond that, the program can no longer calculate the factorial as the results exceed the capacity of the factorial variable.

Did you find this article helpful?