GCD (i.e. Greatest Common Divisor) or HCF (i.e. Highest Common Factor) is the largest number that can divide both the given numbers.

Example:
HCF of 10 and 20 is 10, and HCF of 9 and 21 is 3.The GCD of two numbers can be efficiently computed using the Euclidean Algorithm. The algorithm is based on the principle that the GCD of two numbers does not change if the smaller number is subtracted from the larger number. A more efficient version uses the modulo operator.
Note: The GCD of two numbers remains unchanged when the smaller number is subtracted from the largerâthis is the basis of the Euclidean algorithm.
class GFG {
// Gcd of x and y using recursive function
static int GCD(int x, int y)
{
// If one number becomes 0, the other number is the GCD
if (x == 0)
return y;
if (y == 0)
return x;
// Both the numbers are equal
if (x == y)
return x;
// x is greater
if (x > y)
return GCD(x - y, y);
return GCD(x, y - x);
}
// The Driver method
public static void main(String[] args)
{
int x = 100, y = 88;
System.out.println("GCD of " + x + " and " + y
+ " is " + GCD(x, y));
}
}
Output
GCD of 100 and 88 is 4
Similarly, you can find the GCD or HCF of any two given numbers.
An efficient solution is to utilize a modulo operator in the Euclidean algorithm which is the foremost algorithm applied for this topic.
class geeksforgeeks {
// Function to return gcd of x and y
// recursively
static int GCD(int x, int y)
{
if (y == 0)
return x;
return GCD(y, x % y);
}
// The Driver code
public static void main(String[] args)
{
int x = 47, y = 91;
System.out.println("The GCD of " + x + " and " + y
+ " is: " + GCD(x, y));
}
}
Output
The GCD of 47 and 91 is: 1