Home »
C programs »
C looping programs

# 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 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.

You may also be interested in...

C/C++ Tips and Tricks...