## How to find the LCM of two numbers in C:

In this post, we will learn how to find the *LCM* of two *numbers* in *C*. *LCM* or *Lowest common multiple* is the *smallest positive number* that is perfectly divisible by both of these numbers. *Perfectly divisible* means that the remainder is *0* for that division.

This program will take two numbers as inputs from the user and print the *LCM*.

We will learn different ways to find the *LCM*.

## Method 1: C program to find the LCM of two numbers using a while loop:

We can find the *LCM* by using a *while loop*. Basically, we will take two *numbers* as inputs from the user and starting from the bigger number, we will start one *while loop*.

This loop will find the *LCM* of these two numbers.

- Run the while loop until the value of
*LCM*is found. - On each iteration, check if the current value is
*perfectly divisible*by both numbers or not. If yes, return that value, else move to next iteration. - At the end of each iteration, add the
*larger value*to the current value.

Below is the complete program:

```
#include <stdio.h>
int findLCM(int first, int second)
{
int maxValue = first > second ? first : second;
int currentValue = maxValue;
while (1)
{
if (currentValue % first == 0 && currentValue % second == 0)
{
break;
}
currentValue += maxValue;
}
return currentValue;
}
int main()
{
int firstNumber, secondNumber;
printf("Enter the numbers: ");
scanf("%d %d", &firstNumber, &secondNumber);
printf("LCM : %d\n", findLCM(firstNumber, secondNumber));
}
```

Here,

*findLCM*method is used to find the*LCM*. It takes two numbers as its parameters and returns the*LCM*.*maxValue*is the larger value among the numbers provided in the arguments. This value is assigned as the*currentValue*.- The
*while loop*will run for indefinite amount of time. It checks if the*currentValue*is perfectly divisible by both of these numbers or not. If yes, it*breaks*from the*while loop*and returns the*currentValue*, which is*LCM*. - Else, it adds
*maxValue*to*currentValue*.

If you run this program, it will print output as like below:

```
Enter the numbers: 3 10
LCM : 30
```

## Method 2: C program to find the LCM of two numbers by using GCD in a recursive method:

In this method, we will find the *LCM* of two numbers by using *GCD*. *GCD* stands for *greatest common divisor*. *GCD* is equal to the *largest* number that can divide both numbers perfectly. If we divide the *product* of two numbers by their *GCD*, it will return the *LCM*.

`LCM = (firstNumber * secondNumber)/GCD`

So, we will write one method that will find the *GCD*. This method will be used by the *find LCM* method and it will return the *LCM*.

Below is the complete program:

```
#include <stdio.h>
int findGCD(int first, int second)
{
if (first == 0)
return second;
if (second == 0)
return first;
if (first == second)
return first;
if (first > second)
return findGCD(first - second, second);
return findGCD(first, second - first);
}
int findLCM(int first, int second)
{
int gcd = findGCD(first, second);
return (first * second) / gcd;
}
int main()
{
int firstNumber, secondNumber;
printf("Enter ther numbers: ");
scanf("%d %d", &firstNumber, &secondNumber);
printf("LCM : %d\n", findLCM(firstNumber, secondNumber));
}
```

Here, *findGCD* is used to find the *GCD* of two numbers. It takes two numbers as parameters and returns the *GCD*. *findLCM* is used to find the *LCM* of two numbers. It finds the *GCD* and then divide the product of the numbers by the *GCD* value to get the *LCM*.

If you run this program, it will print similar output.

### You might also like:

- Write a C program to convert an integer value to character
- What is %p modifier in C programming
- C program to add two distances in feet and inches using structure
- C program to print a name multiple times without using loop or function
- What is compilation and how compilation process works in C
- C program to check if a string is empty or not