This code implements the Euclidean algorithm to find the greatest common divisor (GCD) of two numbers a
and b
. The GCD is the largest positive integer that divides two or more numbers without leaving a remainder.
The function gcd(int a, int b)
takes two integer inputs a
and b
. The function uses recursion to calculate the GCD by repeatedly subtracting the smaller number from the larger number until either a
or b
is equal to zero. At that point, the other number will be returned as the GCD.
In each iteration of the function, the GCD is calculated by comparing a
and b
. If a
is equal to zero, then b
is returned as the GCD. If b
is equal to zero, then a
is returned as the GCD. If a
is greater than b
, then gcd(a-b,b)
is called, subtracting b
from a
and keeping b
unchanged. If b
is greater than a
, then gcd(a,b-a)
is called, subtracting a
from b
and keeping a
unchanged.
In the main
function, two integer variables a
and b
are initialized with values 90 and 60 respectively. The GCD of a
and b
is calculated by calling the gcd
function and the result is printed to the console.
#include <iostream>
using namespace std;
static int gcd(int a, int b) {
if (a == 0) {
return b;
} else if (b == 0) {
return a;
} else if (a > b) {
return gcd(a - b, b);
} else {
return gcd(a, b - a);
}
}
int main() {
int a = 90, b = 60;
cout << "Greatest common divisor is: " << gcd(a, b) << endl;
return 0;
}
Greatest common divisor is: 30