# Java Program to Find LCM of two Numbers

The LCM of two integers is the smallest positive integer that is perfectly divisible by both the numbers (without a remainder).

## Example 1: LCM using while Loop and if Statement

`public class LCM {`

`public static void main(String[] args) {`

`int n1 = 72, n2 = 120, lcm;`

`// maximum number between n1 and n2 is stored in lcm`

`lcm = (n1 > n2) ? n1 : n2;`

`// Always true`

`while(true)`

`{`

`if( lcm % n1 == 0 && lcm % n2 == 0 )`

`{`

`System.out.printf("The LCM of %d and %d is %d.", n1, n2, lcm);`

`break;`

`}`

`++lcm;`

`}`

`}`

`}`

When you run the program, the output will be:

The LCM of 72 and 120 is 360.

In this program, the two numbers whose LCM is to be found are stored in variables `n1` and `n2` respectively.

Then, we initially set `lcm` to the largest of the two numbers. This is because, LCM cannot be less than the largest number.

Inside the infinite while loop (`while(true)`

), we check if `lcm` perfectly divides both `n1` and `n2` or not.

If it does, we’ve found the LCM. We print the LCM and break out from the while loop using `break`

statement.

Else, we increment `lcm` by 1 and re-test the divisibility condition.

We can also use GCD to find the LCM of two numbers using the following formula:

LCM = (n1 * n2) / GCD

If you don’t know how to calculate GCD in Java, check Java Program to find GCD of two numbers.

## Example 2: Calculate LCM using GCD

`public class LCM {`

`public static void main(String[] args) {`

`int n1 = 72, n2 = 120, gcd = 1;`

`for(int i = 1; i <= n1 && i <= n2; ++i)`

`{`

`// Checks if i is factor of both integers`

`if(n1 % i == 0 && n2 % i == 0)`

`gcd = i;`

`}`

`int lcm = (n1 * n2) / gcd;`

`System.out.printf("The LCM of %d and %d is %d.", n1, n2, lcm);`

`}`

`}`

The output of this program is same as Example 1.

Here, inside the for loop, we calculate the GCD of the two numbers – `n1` and `n2`. After the calculation, we use the above formula to calculate the LCM.