#include using namespace std; using ll = long long; #define rep(i,n) for (int i = 0; i < n; i++) #define rrep(i,n) for (int i = n - 1; i >= 0; i--) #define all(v) v.begin(),v.end() #define rall(v) v.rbegin(),v.rend() template bool chmax(T &a, T b){if (a < b){a = b;return true;} else return false;} template bool chmin(T &a, T b){if (a > b){a = b;return true;} else return false;} bool is_square(ll x){ ll ok = 0, ng = 1e9 + 1; while (ng - ok > 1){ ll mid = (ok + ng) / 2; if (mid * mid <= x){ ok = mid; } else{ ng = mid; } } return (ok * ok == x); } void solve(){ int n; cin >> n; vector A(n); rep(i, n){ cin >> A[i]; } rep(i, n - 1){ for (int j = i + 1; j < n; j++){ ll g = gcd(A[i], A[j]); A[i] /= g; A[j] /= g; } } rep(i, n){ if (!is_square(A[i])){ cout << "No" << "\n"; return; } } cout << "Yes" << "\n"; } int main(){ ios::sync_with_stdio(false); std::cin.tie(nullptr); int t; cin >> t; while (t--){ solve(); } }