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