×

LCM of two numbers in C

LCM is a mathematical term which stands for Least Common Multiple. LCM of any two numbers is the smallest positive value(number) which is evenly divisible by the two given numbers.

Consider a and b as two numbers and L denotes the LCM of a and b.

Now, if a=4 and b=6

Then, L will be the smallest number which is divisible by both a and b, i.e., 4 and 6, without leaving any remainder.

LCM of two numbers in C

                                    Figure 1 :  Finding the common multiples of 4 and 6

There are various ways to find LCM of two numbers, some of them are as follows:

  1. Prime factorization
  2. Euclidean algorithm
  3. Listing method ( figure 1)

Algorithm of LCM

The mathematics behind to find the LCM of two numbers can be deduced to an algorithm:

1) Initialize the variables a and b.

2) Store the common multiples of a and b into the variable L.

3) Check whether L is divisible by both a and b.

4) If step 3 is true, display L as the LCM of two numbers (a and b).

5) Else, increase the value of L, and go to step 3.

6) Halt the program.

Finding LCM of two numbers using C programming

Before getting our hands dirty with the coding part, let’s try to deduce the logic behind this mathematical concept.

Consider the same set of examples discussed earlier, where L was the LCM of two numbers a and b.

? L is the smallest number divisible by a and b.

Now, if we think about the logical part (in C code) which will result in our output, the range L will lie between 1 to a*b (product of a and b). Here we are considering the base case to denote the range of L.

i.e.,   L = 1 to L = a*b                                   - (i)

Also, from Step 3 of the algorithm:

      ( L%a == 0 && L%b==0)                     - (ii)

Program 1

int main()
	{
	
	int a,b,L;   // declaring variables


	printf("Enter two numbers");
	
	scanf("%d %d", &a,&b);


	for( L=1; L<= a *b ; L++)              //from statement (i)


	    if( L%a==0 && L%b==0)	         //from statement (ii)
	    break;


	printf("LCM is %d", L);
	
	}

Output:

LCM of two numbers in C

Program 2: LCM of two numbers using GCD

Here, we will follow a basic formula to find the LCM of two numbers a and b.

The formula is as follows:

LCM(a,b) = (a*b) / GCD

*GCD stands for Greatest Common Divisor. The GCD is the largest integer which will divide each of the given numbers evenly.

Let’s understand this using C programming:

int main()
     {
          int num1, num2, lcm, temp, gcd;  //declaring the variables


    	printf("Enter any two integer values \n");
    	scanf("%d %d", &num1, &num2);


 	   int a = num1;
    	   int b = num2;
    
    	while (num2 != 0) 
{
 	temp = num2;                             // storing the output values in temp variable
 	num2 = num1 % num2;
 	num1 = temp;
           }
         gcd = num1;
         lcm = (a * b) / gcd;
         printf("lcm of %d and %d = %d", a, b, lcm);
         return 0;


      }

Output: 

LCM of two numbers in C

Program 3: LCM of two numbers using function

int fun_lcm(int a,int b);                      // function declaration   
 int main()  
{  
    int num1, num2, lcm;
    printf ("Enter any two numbers :\n");  
    scanf ("%d %d", &num1, &num2);  
    lcm = fun_lcm( num1, num2);      // function calling  
    printf ( " \n LCM of %d and %d is %d. ", num1, num2, lcm);  
    return 0;  
}  
  
int fun_lcm ( int num1, int num2)   // function definition   
{  
    static int max = 1;  
    if ( max % num1  == 0 && max % num2 == 0)  
    {  
        return max;  
    }  
    else  
    {  
        max++;  
        fun_lcm( num1, num2);  
        return max;  
    }
  } 

Output:

LCM of two numbers in C

Program 4: LCM of two numbers using recursion

int lcm(int a, int b);


int main()
{
    int num1, num2, LCM;


    /* Input two numbers from user */


    printf("Enter any two numbers to find lcm: ");
    scanf("%d%d", &num1, &num2);
    
    
    if(num1 > num2)
        LCM = lcm(num2, num1);
    else
        LCM = lcm(num1, num2);
        
    printf("LCM of %d and %d using recursive function is = %d", num1, num2, LCM);
    
    return 0;
}


//Recursive function to find lcm of two numbers 'a' and 'b'.


int lcm(int a, int b)
{
    static int multiple = 0;
    
    /* Increments multiple by adding max value to it */


    multiple += b;
    


     // Base case of recursion or recursive function


    if((multiple % a == 0) && (multiple % b == 0))
    {
        return multiple;
    }
    else 
    {
        return lcm(a, b);
    }
}

Output:

LCM of two numbers in C

Related Topics

fopen() function in C

fopen() function, is one of the file handling functions. It is used to open the existing file and perform operations on the file. If the file does not exist, it...

3 minutes read.

Static function in C

The functions in the C programming language are by default global. This means the programmer can easily access the function which is outside from the file where it was initially...

3 minutes read.

Use of fflush(stdin) in C

Use of fflush(stdin) in C Usually, fflush() is only used for the output stream. The purpose is to clean (or flush) the output buffer and transfer the buffered data into...

2 minutes read.

Errors in C

Errors in C Errors are nothing but problems or faults that pretty much occur in all the programming languages. Errors make the behavior of the program seem abnormal, and even the...

4 minutes read.

Difference between C and Java

C programming and Java programming are two of the earliest programming languages. C programming follows a procedural approach whereas Java programming follows an object-oriented approach. Java programming is a part...

3 minutes read.

Storage Class in C

C storage class is used to define the scope variables and function. There are four various types of storage classes that are given below. auto: The auto keyword is the default...

1 minute read.

GCD program in C

C language : Dennis Ritchie developed the general-purpose computer language C at Bell Laboratories in 1972. Despite being an ancient language, it is extremely popular. It is among the most widely used...

4 minutes read.

Types of Pointers in C

Pointers in C A pointer is a variable and this variable contains the address of another variable, i.e it’s a variable which has the address of another variable as its value....

4 minutes read.

How to measure time taken by a function in C?

Measuring the time taken by a function is quite a complex task, because numerous methods are frequently not transferable to other platforms, measuring the execution time of a C programs...

5 minutes read.

Enumeration (Enum) in C

Enumeration (Enum) in C: In the C programming language, the enum is referred to as an enumerated type. Enum is a user defined data type consisting of integer values and...

3 minutes read.

Memory layout in C

Memory layout in C The C language is designed so that it becomes easier for a programmer to decide the amount of memory they want to use in a program. C program...

4 minutes read.

Stack implementation in C

Stack implementation in C Stack stores the data in a particular order. It is a linear data structure that follows the principle of the Last In First Out (LIFO) technique where...

3 minutes read.

Booleans in C

Introduction to Boolean With all the complexities of programming, it can take time to understand the basics. One concept, in particular, that confuses many beginners is the use of Booleans in...

6 minutes read.

Distance Vector Routing Protocol Program in c

A distance-vector routing protocol is one of the foremost instructions of routing protocols in pc conversation principle for packet-switched networks. The hyperlink-nation protocol is the alternative foremost class.The Bellman-Ford set...

4 minutes read.

File Operations in C

Why do I need the file? All data will be lost when the program exits. Saving data to a file keeps it safe even if the program stops working. If there...

6 minutes read.

How to lock top row in Excel

How to lock top row in excel While working with an Excel spreadsheet, the user utilizes the rows and columns to enter the details under various headings. Sometimes while scrolling the...

4 minutes read.

Built-in functions in C

The function is a set of instructions and statements enclosed in the "{}" delimiter. In c, there are two types of functions. Pre-define functions/ Built-in functionsUser define function. Built-in functions in C:- These...

8 minutes read.

Bank management system in C

This is a mini project that is constructed completely using the C language. The bank management system is a beginner friendly project. To construct this user only needs to know...

12 minutes read.

Array Example in C

An array is a collection of similar types of data elements arranged in such a way that any number of values can be assigned to it. It can store values that...

4 minutes read.

Loop Statement in C

Loop statement is used to execute one or more statement repeatedly multiple times. There are three types of loops in C language. Why use loop? We can use loop because it executes a...

2 minutes read.