Skip to content
Related Articles

Related Articles

Java Program to Find GCD and LCM of Two Numbers Using Euclid’s Algorithm
  • Last Updated : 04 Dec, 2020

GCD or the Greatest Common Divisor of two given numbers A and B is the highest number dividing both A and B completely, i.e., leaving remainder 0 in each case. LCM or the Least Common Multiple of two given numbers A and B is the Least number which can be divided by both A and B, leaving remainder 0 in each case.

The LCM of two numbers can be computed in Euclid’s approach by using GCD of A and B.

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

Examples:

Input : A = 20, B = 30



Output:
GCD = 10
LCM = 60

Explanation:
The highest number which divides 20 and 30 is 10. So the GCD of 20, 30 is 10.
The lowest number that can be divided by 20 and 30, leaving remainder 0 is 60.
So the LCM of 20 and 30 is 60.

Input : A= 33, B= 40

Output:
GCD = 1
LCM = 1320

Euclidean Algorithm for Computing GCD:

This approach of computing the GCD is based on the principle that the GCD of two numbers A and B remains the same even if the larger number is replaced by the modulo of A and B. In this approach, we perform the gcd operation on A and B repeatedly by replacing A with B and B with the modulo of A and B until the modulo becomes 0.

Below is the implementation of to find GCD and LCM of Two Numbers Using Euclid’s Algorithm:

Java




// Java program to compute
// GCD of two numbers
// using Euclid's algorithm
  
import java.io.*;
  
class GFG {
  
    // gcd method returns the GCD of a and b
    static int gcd(int a, int b) {
        
        // if b=0, a is the GCD
        if (b == 0)
            return a;
        
        // call the gcd() method recursively by
        // replacing a with b and b with
        // modulus(a,b) as long as b != 0
        else
            return gcd(b, a % b);
    }
  
    // lcm() method returns the LCM of a and b
    static int lcm(int a, int b, int gcdValue)
    {
        return Math.abs(a * b) / gcdValue;
    }
  
    // Driver method
    public static void main(String[] args) {
  
        int a = 20, b = 30, gcdValue;
        gcdValue = gcd(a, b);
        
        // calling gcd() over
        System.out.println("GCD = " + gcdValue);
        
        // calling lcm() over integers 30 and 20
        System.out.println("LCM = " + lcm(a, b, gcdValue));
    }
}
Output
GCD = 10
LCM = 60

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :