**Factorial of given number** is the mathematical problem. Factorial of number means the product or multiplication of the number till the given number. consider we having number N then factorial of number **N** we calculate as **N! => N*(N-1)*(N-2)….**

**Example: calculate 6 factorial**

**6! =6*5*4*3*2*1 =720**

That is factorial of the number 6 is 720.

Using this technique we implement the **factorial program in c**.

We implement factorial program in c in two ways as :

**Iterative method****Recursive method****Using pointers.**

## Using iterative method:

This is first method using which we implement the factorial.

In this technique, we use the iterative loop as **for loop** to iterate and multiply the number up to N-1.

## Write a program to find factorial of number

Factorial

C

1234567891011121314151617181920212223 | #include<stdio.h>#include<conio.h>void main(){int n,i,f=1;printf(“Enter the number to calculate factorial:\n”);scanf(“%d”,&n);//Factorial logic.for(i=1;i<=n;i++)f=f*i;printf(“Factorial of the number %d is %d “,n,f);getch();} |

**Output :**

**Enter the number to calculate factorial:**

**6 <-**

**Factorial of the number 6 is 720**

In above program, we taken input from user to calculate factorial that is 6.now we calculate the factorial of the number using the formula N! .we taken for loop for calculating this till 6.

**Using recursive method**

This is second method using which we implement the factorial.

In this technique, we recursively call the same function to calculate factorial.

Recursion: **Function calling itself is referred as recursion**.

## Write a program to find factorial of number using recursion.

C

123456789101112131415161718192021222324252627282930313233343536373839404142434445 | #include<stdio.h>#include<conio.h>int fact(int); //declaring the fact function.void main(){int n,f;printf(“Enter the number to calculate factorial:\n”);scanf(“%d”,&n);f=fact(n); //calling recursive function with given number n.printf(“Factorial of the number %d is %d “,n,f);getch();}//defining the recursion function.int fact(int n){int fac;if(n<=1){return 1;}else{fac=fac*fact(n-1); //recursive call to the function.return (fac);}} |

**Output :**

**Enter the number to calculate factorial:**

**6 <-**

**Factorial of the number 6 is 720**

## Using Pointers method

This is third method using which we implement the factorial.

Pointers : pointers is the variable which stores the address of another variable.

## Program to find factorial of number using pointers.

C

123456789101112131415161718192021 | #include<stdio.h>#include<conio.h>void fact(int,int *); //declaring the fact function with pointer variable.void main(){int n,f,i;printf(“Enter the number to calculate factorial:\n”);scanf(“%d”,&n);fact(n,&f); //calling function with given number n.printf(“Factorial of the number %d is %d “,n,f);getch();} |

**Output :**

**Enter the number to calculate factorial:**

**6 <-**

**Factorial of the number 6 is 720**

## Defining the recursion function.

factorial

C

12345678910111213 | int fact(int n,int *fac){int i;*fac=1;for(i=1;1<=n;i++){*fac=*fac*i; //calculate factorial using *fac pointer variable.}} |

**Output :**

**Enter the number to calculate factorial:**

**6 <-**

**Factorial of the number 6 is 720**