func_code_string: #include <bits/stdc++.h>   using namespace std;   long long gcd(long long a, long long b) {     if (a < b) {       swap(a, b);     }     if (a % b == 0) {       return b;     }     return gcd(b, a % b);   }   vector<vector<int>> gr;   vector<int> used;   void dfs(int v) {     used[v] = 1;     for (auto i : gr[v]) {       if (!used[i]) {         dfs(i);       }     }   }   void solution() {     long int n;     cin >> n;     vector<long long> mass(n);     long long minn = 1e10;     long long minn_ind = 0;     for (int i = 0; i < n; i++) {       cin >> mass[i];       if (mass[i] < minn) {         minn = mass[i];         minn_ind = i;       }     }     gr = vector<vector<int>>(n);     used = vector<int>(n, 0);     for (int i = 0; i < n; i++) {       if (gcd(mass[i], minn) == minn) {         gr[i].push_back(minn_ind);         gr[minn_ind].push_back(i);       }     }     dfs(minn_ind);     vector<long long> sorted = mass;     sort(sorted.begin(), sorted.end());     vector<long long> get_ans;     for (int i = 0; i < n; i++) {       if (mass[i] != sorted[i] || i == minn_ind) {         get_ans.push_back(i);       }     }     bool ans = 1;     for (auto i : get_ans) {       if (!used[i]) {         ans = 0;         break;       }     }     if (ans) {       cout <<  YES ;     } else {       cout <<  NO ;     }     cout << endl;   }   int main() {     int t;     cin >> t;     for (int i = 0; i < t; i++) {       solution();     }   }   