In this article, you will learn to calculate the factorial of a number.
Factorial of a non-negative integer, is multiplication of all integers smaller than or equal to n. For example factorial of 6 is 5*4*3*2*1 which is 120.
The factorial of a positive number n is given by:
factorial of n (n!) = 1 * 2 * 3 * 4.... upto n
The factorial of a negative number doesn’t exist. And, the factorial of 0 is 1.
Examples :
Input : 4 Output : 24 Input : 5 Output : 120
Factorial can be calculated using following recursive formula.
n! = n * (n-1)! n! = 1 if n = 0 or n = 1
Implementation :
1. Using loop (Iterative) method :
// iterative method to find factorial of a number #include <stdio.h> // driver int main() { // take input int num = 5; //product of numbers from num to 1 int factorial = 1; for(int i=num; i>=1; i--) // multiply in increasing order factorial=factorial*i; // call factorial function and print factorial printf("Factorial of given number is %d", factorial); // successful completion return 0; }
Output :
Factorial of given number is 120
2. Using Recursion :
// C program to find factorial of given number #include <stdio.h> // function to find factorial of given number unsigned int factorial(unsigned int n) { // for factorial of 0 if (n == 0) return 1; // factorial, for more than, call recursive (n-1) return n * factorial(n - 1); } // driver program int main() { // take input int num = 5; // call factorial and print value of its factorial printf("Factorial of given number is %d", factorial(num)); // successful completion return 0; }
Output :
Factorial of given number is 120
3. Using Ternary operator :
// program to find factorial using ternary operator #include <iostream> // call function factorial int factorial(int n) { // single line to find factorial return (n == 1 || n == 0) ? 1 : n * factorial(n - 1); } // Driver code int main() { // take input int num = 5; // call factorial function and print factorial printf("Factorial of given number is %d", factorial(num)); // successful completion return 0; }
Output :
Factorial of given number is 120
4. Using tgamma() method :
Note that tgamma(n+1)=n! , and tgamma is defined in math.h library of C.
// find factorial using tgamma() method // tgamma() is defined in math.h #include <math.h> // for standard input and output #include <stdio.h> // driver program int main() { // take input int n = 5; // tgamma(n+1)=n! // store the vaule of tgamma n = tgamma(n + 1); // call factorial function and print factorial printf("Factorial of given number is %d", n); // successful completion return 0; }
Output :
Factorial of given number is 120
Please write comments if you find anything incorrect. A gentle request to share this topic on your social media profile.