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]
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.
Factorial program in C
Simple program - without using User Define Function
Output
User Define Function
Output
Using Recursion
Logic behind to implement these programs