C++ Program to Find Factorial of a Number

In this tutorial, we will write a Factorial Program in C++. Let us start by understanding what is factorial of a number.

Factorial of n number: Factorial of n number is the product of all the positive descending integers and is denoted by n!. Also factorial of 0 and 1 is 1.

Example:

factorial of n (n!) = n * (n-1) * (n-2) * (n-3)….1
factorial of 5 (n!) = 5 * 4 * 3 * 2 * 1
NOTE: Factorial of 0 (0!) = 1

We will write three different factorial programs in C++.

  • using while loop
  • using for loop
  • using function

C++ program to calculate factorial of a number

The user needs to enter the number for which the factorial needs to be calculated. The calculation is done using a while loop in C++.

Source code: c++ program to find factorial of a number using while loop.

#include<iostream>
using namespace std;
 
int main()
{
    int num, fact = 1, i = 1;
     
    cout << "Enter an Integer: ";
    cin >> num;
     
    //calculation
    while(i <= num)
    {
        fact = fact * i;
        i++ ;
    }
     
    cout << "\nThe Factorial of " << num <<": " << fact;
    
    return 0;
}

Output:

Enter an Integer: 5

The Factorial of 5: 120


Factorial program in C++ using for Loop

It is the same as the above, the only difference is we use for loop instead of while loop in the following program.

Source code:

#include<iostream>
using namespace std;
 
int main()
{
    int num, fact = 1, i = 1;
     
    cout << "Enter an Integer: ";
    cin >> num;
     
    //calculation
    for(i = 1; i <= num; i++)
    {
        fact *= i;
    }
     
    cout << "\nThe Factorial of " << num <<": " << fact;
    
    return 0;
}

Output:

Enter an Integer: 4

The Factorial of 4: 24


Calculate the factorial of a number using function

The program has a separate user-defined function that calculates the factorial of a number. The number entered by the user is passed as an argument to the function and after the calculation, the function returns the factorial value to the main function. The result is displayed on the main drive.

#include<iostream>
using namespace std;

int factFunc(int n)
{
    int i, fact = 1;
    
    for(i = n; i >= 1; i--)
        fact = fact*i;
        
    return fact;
}
 
int main()
{
    int num, result;
     
    cout << "Enter an Integer: ";
    cin >> num;
    
    result = factFunc(num);
     
    cout << "\nThe Factorial of " << num <<": " << result;
    
    return 0;
}

Output:

Enter an Integer: 6

The Factorial of 6: 720