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 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;
    unsigned long long factorial = 1;

    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 unsigned long 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.