Program to find HCF (Highest Common Factor) of 2 Numbers
HCF (Highest Common Factor) or GCD (Greatest Common Divisor) of two numbers is the largest number that divides both of them.
For example, GCD of 20 and 28 is 4, and GCD of 98 and 56 is 14.
A simple solution is to find all prime factors of both numbers, then find the intersection of all factors present in both numbers. Finally, return the product of elements in the intersection.
An efficient solution is to use Euclidean algorithm which is the main algorithm used for this purpose. The idea is, GCD of two numbers doesn’t change if smaller number is subtracted from a bigger number.
C++
C
Java
Python3
C#
using System;
class GFG {
static int gcd( int a, int b)
{
if (a == 0 && b == 0)
return 0;
if (a == 0)
return b;
if (b == 0)
return a;
if (a == b)
return a;
if (a > b)
return gcd(a - b, b);
return gcd(a, b - a);
}
public static void Main()
{
int a = 98, b = 56;
Console.WriteLine( "GCD of " + a + " and " + b
+ " is " + gcd(a, b));
}
}
|
Javascript
<script>
function gcd(a, b)
{
if (a == 0 && b == 0)
return 0;
if (a == 0)
return b;
if (b == 0)
return a;
if (a == b)
return a;
if (a > b)
return gcd(a - b, b);
return gcd(a, b - a);
}
var a = 98, b = 56;
document.write( "GCD of " + a + " and " +
b + " is " + gcd(a, b));
</script>
|
PHP
Output
GCD of 0 and 56 is 56
Time Complexity: O(max(a,b)), where a and b are the given two integers.
Auxiliary Space: O(max(a,b)), where a and b are the given two integers.
A more efficient solution is to use modulo operator in Euclidean algorithm .
C++
C
Java
Python3
C#
using System;
class GFG {
static int gcd( int a, int b)
{
if (b == 0)
return a;
return gcd(b, a % b);
}
public static void Main()
{
int a = 98, b = 56;
Console.WriteLine( "GCD of "
+ a + " and " + b + " is "
+ gcd(a, b));
}
}
|
Javascript
PHP
Output
GCD of 98 and 56 is 14
Time Complexity: O(log(max(a,b)), where a and b are the given two integers.
Auxiliary Space: O(log(max(a,b)), where a and b are the given two integers.
Please refer GCD of more than two (or array) numbers to find HCF of more than two numbers.
Last Updated :
07 Jan, 2024
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...