In this article, we’ll learn ways to find the factorial of a number in C. The **factorial** of a non-negative integer *n*, denoted by ** n!**, is the product of all positive integers less than or equal to

*n*. For example,

**4! =**4*3*2*1

**= 24**.

There are many ways in C to find the factorial of a number, some of them are mentioned below.

**Program: C program to find factorial of a number** using for loop

The following code example uses for loop to find the factorial of a number entered by the user and then prints the factorial.

#include<stdio.h>intmain() {longintn,fact=1,i; printf("Find the factorial of :-> "); scanf("%li",&n); for(i=1;i<=n;i++) fact *= i; printf("Factorial of %li = %li\n",n,fact); return 0; }

**Output: **Factorial program in C sample output

```
Find the factorial of :-> 6
Factorial of 6 = 720
```

The same thing can also be done using a function. It uses the same algorithm, but the algorithm to find the factorial is written separately inside a function. Below is the code for the same.

## Program: C program to find the factorial of a number using function

#include<stdio.h>longintfactorial(longint); //function prototypeintmain() {longintn,i; printf("Enter a number :-> "); scanf("%li",&n); printf("Factorial of %li = %li\n",n,factorial(n)); //function calling here return 0; }longintfactorial(longintnum){ //function definitionlongintfact = 1; for(inti=1;i<=num;i++) fact *= i; return fact; }

Factorial of a number can also be found using recursion. To implement the idea of calculating the factorial using recursion, you must have the understanding of **recursion** in C. A recursive function is a function that calls itself.

## Program: C program to find the factorial of a number using recursion

#include<stdio.h>longintfact(longint); //function declaration or prototypeintmain() {longintnum, result; //for smaller values use int. printf("Enter a number: "); scanf("%ld", &num); if (num < 0) { printf("Try again!!\n"); } else { result = fact(num); printf("The Factorial of %ld is %ld\n", num, result); } return 0; }longintfact(longintnum) //function definition { if (num== 0 ||num== 1) { return 1; } else { return(num* fact(num- 1)); } }

**Output:**

```
Enter a number: 5
The Factorial of 5 is 120
```

## Program: C program to find the factorial of a number using while loop

If you understand the working of the factorial and its algorithm, you can find it using different ways. The following C program example finds the factorial of a number entered by the user using while loop.

#include<stdio.h>intmain() {longintn,fact=1,i = 1; printf("Enter an integer :-> "); scanf("%li",&n); while(i<=n){ fact *= i; i++; } printf("Factorial of %li = %li\n",n,fact); return 0; }

**Output:**

```
Enter an integer :-> 10
Factorial of 10 = 3628800
```

There is one more interesting problem related to factorial in C.

## Program: C program to print the sum of factorial series

The following C program takes the limit of the factorial series as input and prints the pattern : 1!+2!+3!+4!+…n! .

#include<stdio.h>intmain() {intn,i,j,fact=1,sum=0; printf("Enter the limit of the factorial series: "); scanf("%d",&n); for(i=1;i<=n;i++) { for(j=1;j<=i;j++) fact*=j; sum+=fact; fact=1; } printf("The sum of the factorial series of %d terms is : %d\n",n,sum); return 0; }

**Output:** Factorial program in C

```
Enter the limit of the factorial series: 5
The sum of the factorial series of 5 terms is : 153
```

In this article, we learned about the factorial program in C. For more programming articles and code snippets, visit programming articles.