3
int minOperations(vector<int> &nums, vector<int> &numsDivide) {5
priority_queue<int, vector<int>, greater<int>> pq; /// min heap6
int op = numsDivide[0];7
int n = numsDivide.size();8
for (int i = 1; i < n; i++) {9
op = __gcd(op, numsDivide[i]); // as it will be the maximum number that10
// will divide all the numbers12
for (auto &i : nums) {13
pq.push(i); // pushing all elements in the heap18
if (op % temp == 0) { // if the minimum element divides the gcd return22
if (temp > op) { // if pq top become bigger than the find gcd then it returns -127
return -1; // means the heap got empty and no element divide the numsDivide