The LCM of two integers `n1` and `n2` is the smallest positive integer that is perfectly divisible by both `n1` and `n2` (without a remainder). For example, the LCM of **72** and **120** is **360**.

## LCM using while and if

```
#include <stdio.h>
int main() {
int n1, n2, max, lcm;
printf("Enter two positive integers: ");
scanf("%d %d", &n1, &n2);
// maximum number between n1 and n2 is stored in max
max = (n1 > n2) ? n1 : n2;
lcm = max;
while ((lcm % n1 != 0) || (lcm % n2 != 0)) {
lcm += max;
}
printf("The LCM of %d and %d is %d.", n1, n2, lcm);
return 0;
}
```

**Output**

Enter two positive integers: 72 120 The LCM of 72 and 120 is 360.

In this program, the integers entered by the user are stored in variable `n1` and `n2` respectively.

The largest number among `n1` and `n2` is stored in `max`. The LCM of two numbers cannot be less than `max`.

The test expression of `while`

loop is always **true**.

In each iteration, we check whether `max` is perfectly divisible by `n1` and `n2`.

```
if ((max % n1 == 0) && (max % n2 == 0)) {
// code
}
```

If this test condition is not true, `max` is incremented by **1** and the iteration continues until the test expression of the `if`

statement is true.

## LCM Calculation Using GCD

We can also find the LCM of two numbers `num1` and `num2` using their GCD:

LCM = (num1 * num2) / GCD

Learn how to find the GCD of two numbers in C programming before finding the LCM with this method.

```
#include <stdio.h>
int main() {
int n1, n2, i, gcd, lcm;
printf("Enter two positive integers: ");
scanf("%d %d", &n1, &n2);
// loop to find the GCD
for (i = 1; i <= n1 && i <= n2; ++i) {
// check if i is a factor of both integers
if (n1 % i == 0 && n2 % i == 0)
gcd = i;
}
lcm = (n1 * n2) / gcd;
printf("The LCM of two numbers %d and %d is %d.", n1, n2, lcm);
return 0;
}
```

**Output**

Enter two positive integers: 72 120 The LCM of two numbers 72 and 120 is 360.