# C program to find factorial of a number

In this program, we will read and integer number and find the factorial using different methods - using simple method (without using user define function), using User Define Function and using Recursion.

## What is factorial?

Factorial is the product of an integer with it's all below integer till 1. In mathematic representation factorial represents by ! sign.

For Example:
Factorial 5 is:
5! = 120 [That is equivalent to 5*4*3*2*1 =120]

## Factorial program in C

### Simple program - without using User Define Function

```/*C program to find factorial of a number.*/

#include <stdio.h>

int main()
{
int num,i;
long int fact;

printf("Enter an integer number: ");
scanf("%d",&num);

/*product of numbers from num to 1*/
fact=1;
for(i=num; i>=1; i--)
fact=fact*i;

printf("\nFactorial of %d is = %ld",num,fact);

return 0;
}
```

### Output

```Enter an integer number: 7

Factorial of 7 is = 5040
```

## User Define Function

```/*Using Function: C program to find factorial of a number.*/

#include <stdio.h>

/* function : factorial, to find factorial of a given number*/

long int factorial(int n)
{
int i;
long int fact=1;

if(n==1) return fact;

for(i=n;i>=1;i--)
fact= fact * i;

return fact;
}

int main()
{
int num;

printf("Enter an integer number :");
scanf("%d",&num);

printf("\nFactorial of %d is = %ld",num,factorial(num));

return 0;
}
```

### Output

```Enter an integer number: 7

Factorial of 7 is = 5040
```

## Using Recursion

```//function for factorial
long int factorial(int n)
{
if(n==1)    return 1;
return n*factorial(n-1);
}
```

## Logic

Logic behind to implement these programs

• Variables for program - int to store number, long int to store factorial because factorial value is higher than integer value.
• Now, input the number.
• Run a loop from num to 1 and multiply the numbers in a variable called fact.
• And the fact will be the factorial after executing the loop.