# Find the maximum GCD of the siblings of a Binary Tree using C++

GCD (Greatest Common Divisor) is the largest number that divides two numbers. In this tutorial, we will find the maximum GCD of the siblings of a binary tree using C++.
The vector datatype is used to store the tree. The pairs are made of the parent node and child node and stored in vector. If the size of vector is 0 or 1 then there is no GCD since no node or only one node is present. If it is greater than 1 then it will compare with the next. if they have same parent nodes then their GCD is stored in a variable and maximum gcd of all the nodes is displayed.

#### C++ Code for Maximum GCD of the siblings of a binary tree

```#include <iostream>
#include<vector>
#include <algorithm>
using namespace std;

int gcdmax(vector<pair<int, int>> &a)
{
if(a.size()==1 || a.size()==0)
return 0;
pair<int, int> x = a[0];
pair<int, int> y;
int r=-999999;
for (int i=1;i<a.size();i++)
{ y=a[i];
if(x.first == y.first)
{
r= std :: max(r,__gcd(x.second,y.second));

}
x=y;
}
return(r);
}

int main()
{
int ch,p,c;
int res,y=5;
vector<pair<int, int> >a;

do{
cout << "Enter 1 to continue entering and 2 to exit" << endl;
cin>>ch;
switch(ch)
{case 1:
cout<< "Enter the parent" << endl;
cin>>p;
cout<<"Enter the child" <<endl;
cin>>c;
a.push_back(make_pair(p, c));
break;
case 2:
y=10;
res= gcdmax(a);
cout<<res;
break;
}
}while(y!=10);
return 0;
}```

After running the above program, we get the following output:

```Enter 1 to continue entering and 2 to exit
1
Enter the parent
5
Enter the child
2
Enter 1 to continue entering and 2 to exit
1
Enter the parent
5
Enter the child
7
Enter 1 to continue entering and 2 to exit
1
Enter the parent
2
Enter the child
9
Enter 1 to continue entering and 2 to exit
1
Enter the parent
9
Enter the child
15
Enter 1 to continue entering and 2 to exit
1
Enter the parent
9
Enter the child
27
Enter 1 to continue entering and 2 to exit
1
Enter the parent
7
Enter the child
13
Enter 1 to continue entering and 2 to exit
2
Maximum GCD is: 3```

The example tree that is considered above is = {[5,2],[5,7],[2,9],[9,15],[9,27],[7,13]}
Output is 3.