C Program to find the factorial of a number
Last updated on September 23, 2020
The following C program find the factorial of a number:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | /*******************************************************
* Program to find the factorial of a number
********************************************************/
#include <stdio.h>
int main()
{
int n, i;
unsigned long int fact = 1;
printf("Enter a number: ");
scanf("%d", &n);
for(i = n; i > 0; i--)
{
fact = fact * i;
}
printf("%d! = %d", n, fact);
return 0;
}
|
Expected Output 1st run:
1 2 | Enter a number: 5
5! = 120
|
2nd run:
1 2 | Enter a number: 8
8! = 40320
|
How it works:
Factorial of a number n
is defined as:
n! = n * (n-1) * (n-2) * (n-3) * ..... * 2 * 1
For example:
1 2 | 5! = 5 * 4 * 3 * 2 * 1 = 120
9! = 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 = 362880
|
The following table demonstrates what happens at each iteration of the loop (assuming the n = 5
):
Iteration | fact | i |
---|---|---|
After 1st iteration | fact = 1 * 5 = 5 |
5 |
After 2nd iteration | fact = 5 * 4 = 20 |
4 |
After 3rd iteration | fact = 20 * 3 = 60 |
3 |
After 4th iteration | fact = 60 * 2 = 120 |
2 |
After 5th iteration | fact = 120 * 1 = 120 |
1 |
Recommended Reading:
- C Program to find the sum of digits of a number
- C Program to find Armstrong numbers
- C Program to find Prime Numbers
- C Program to generate Fibonacci sequence
- C Program to find the sum of the digits of a number until the sum is reduced to a single digit
Load Comments