C Program For Factorials In C | Pw Skills

By | October 23, 2023

C Program For Factorials Number

The factorials in C, say N, are the product of all the numbers less than or equal to the given number N. The factorials in C is represented with an exclamation mark symbol (!) at the end of N. For example, Let us find the factorial of 7, and then we will write it as

Factorial of 7: 7! = 7 X 6 X 5 X 4 X 3 X 2 X 1 =  5040

Here, we will call 7! are  “7 factorial”. All the numbers less than or equal to the given number N are added together in descending order to find the factorial. Suppose we want to find the factorial of N. Then the general formula to find the factorial of any number N is given by

 N! = N * (N-1) * (N-2) * (N-3) *…………. * 3 * 2 * 1.

In this post, we will learn to write a program to find the factorial using C language. Read the complete article to know the naive as well as the optimal approach to solving the problem.

What are Factorials in C ?

The factorial is denoted by N!. It is the product of all positive integers from 1 up to N. Hence, the repeated addition of a number in descending order up to N.

N! = N * (N-1) * (N-2) * (N-3) *…………. * 3 * 2 * 1.

For example:

0! = 1 

1! = 1

2! = 2*1 = 2

3! = 3*2*1 = 6

and so on.

Factorials are used in many places in mathematical calculations and can be seen mostly in permutation and combination problems.

Factorials in C Problem Statement

Given a number N, find the factorial of the number. In this problem, we have to find the factorial of a given number N. We can find the factorial of a given number using the two best approaches.

  1. Factorial using loop
  2. Factorial using recursion

We will learn both methods of solving factorial problems using C language. Read the complete article to understand the problem statement and the solution better.

Also read: Linear Search Algorithm in C 

Finding Factorials in C

 Let us check the algorithm for finding the factorial of a positive number using the C language.

  • First, we need to ask the user to enter the number to find its factorial.
  • Now, we will read the integer using the scan function in the C language and assign it to a variable.
  • After this, we can use the loop or recursion method to find the factorial of a number.
  • Using a loop, we need to iterate up to the length of the number until it does not exceed the number.
  • Then, we will keep adding the number until it exceeds N.
  • Using recursion, we only need to define a base function such that when the value of N becomes one, we need to return 1.
  • We will keep calling the function n* factorial (n-1) until the base condition occurs.

Let us learn about these two methods and their implementation in detail below.

Also read: Keywords and Identifiers in C

Pseudocode To Find The Factorial in C 

Let us check the step-by-step pseudocode approach to find the logic for solving the factorials in C . 

                                                         Factorial Pseudocode
1. Start

2. Declare variables N (input number), factorial (result)

3. Read input into n

4. Set factorial to 1

5. Repeat until n is greater than 1:

     1. Multiply factorial by n

     2. Decrease n by 1

6. Print factorial as the result

7. End

Also Read: What are Array in C

Factorials In C Using Loops

Let us find the factorials in C using for loops. In this method, we will use a loop that will run to (N-1) times to find the factorials in C. Check out the C program below. 

                                                                          Factorial in C using loops
#include<stdio.h> 

int main()    

{    

int i,fact=1,number;  

printf(“Enter a number: “);   

scanf(“%d”,&number);   

for(i=1;i<=number;i++)

{    

fact = fact * i; 

}    

printf(“Factorial of %d is: %d”, number, fact);    

return 0;  

}   

In the above program, we use loops to find a number’s factorial. We use a fact variable for loops from 1 to N to store the factorial for every iteration. And after completion of the loop, we print the result. Let us check the output for a given number 7. 

Output

Enter a number: 5

Factorial of 7 is: 120

Time and Space Complexity Using loops

Let us find the time taken to find the factorials in C using loops and the memory used in the method.

                                                             Factorials in C using loops 
Time complexity: O(N)

Space Complexity: O(1)

Factorials in C Using Recursion

With the help of this method, we can find the factorial using recursion. Here, the recursion function will be called up to N times. And we will keep on decreasing the number each time by 1. 

Remember, in recursion, it is mandatory to give a base condition to stop the recursion at some point. Failing to allow a proper base case will result in infinite recursion calls. Here, our recursion call will be when N = 1.

                                                                        Factorials in C using Recursion
// C program to find the factorial of a given number

#include <stdio.h>

unsigned int factorial(unsigned int n)

{

    if (n == 1) 

{

      return 1;

 }

   

    return n * factorial (n – 1);

}

// Driver code

int main()

{

    int num = 7;

    printf (“Factorial of %d is %d”, num, factorial(num));

    return 0;

}

In this program, we use recursion to find the factorial of a given number. We call the recursion function N * factorial (N*1). It runs until the value of N becomes 1. 

Output

Factorial of 7 is 5040

Time and Space Complexity Using Recursion

Let us check the time the recursion code takes to execute and the memory used in the process. Recursion uses 

                                                           Factorials in C using Recursion
Time complexity: O(N)

Space Complexity: O (N)

Factorial Of A Number Using Function In C

Let us find the factorial using a function in C. In this method, we will define a function to find the factorial of the given number.

                                                                   Factorial  using Function
#include<stdio.h>

int findFactorial (int x );

int main( ){

    int x,fact,n;

    printf (“Enter a number to get factorial: “);

    scanf (“%d”,&n);

    fact = findFactorial (n);

    printf (” Factorial of %d is: %d”,n, fact);

    return 0;

}

int findFactorial ( int n )

{

    fact=1;

    for (int i = 1; i<= n; i++)

      Fact = fact * i;

     return fact;

}

In this method, we simply define a function to find the factorials in C. However, we use a loop inside our function to find the factorial of the given number.

Output

Enter a number to get factorial: 7

Factorial of 7 is 5040

Recommended Reads
Java Vs C++ Vs Python Java or C++ which is better
What is STL in C++ Top Features of C++ programming language

FREQUENTLY ASKED QUESTIONS FAQs

How can we find the factorial of a number using the C language?

Ans: There are many methods to find the factorial of a number using C language, such as for and while loops. We can use ternary operators and recursion methods to find the factorial. Check the article for more details.

What is the factorial of a number?

Ans: The factorial of a number is the method of finding the repeated addition of a number in descending order. Check out the article to learn more in detail.

What is the factorial of 7?

Ans: We can find the factorial of a number using repeated addition upto N. The factorial of the number 7 will be 7*6*5*4*3*2*1 = 5040. We can find the factorial of a number using various methods in C.

Telegram Group Join Now
WhatsApp Channel Join Now
YouTube Channel Subscribe
Scroll to Top
close
counselling
Want to Enrol in PW Skills Courses
Connect with our experts to get a free counselling & get all your doubt cleared.