using System; using static System.Console; using System.Linq; using System.Collections.Generic; class Program { static int NN => int.Parse(ReadLine()); static long[] NList => ReadLine().Split().Select(long.Parse).ToArray(); static void Main() { Solve(); } static void Solve() { var t = NN; var res = new bool[t]; for (var u = 0; u < t; ++u) { var n = NN; var a = NList; var list = new List(); foreach (var ai in a) if (!IsSquare(ai)) list.Add(ai); while (list.Count > 0) { var flg = false; for (var i = 1; i < list.Count; ++i) { var gcd = GCD(list[0], list[i]); list[0] /= gcd; list[i] /= gcd; if (IsSquare(list[i])) list.RemoveAt(i); if (IsSquare(list[0])) { flg = true; list.RemoveAt(0); break; } } if (!flg) { break; } } res[u] = list.Count == 0; } WriteLine(string.Join("\n", res.Select(f => f ? "Yes" : "No"))); } static long GCD(long a, long b) { if (a < b) return GCD(b, a); if (a % b == 0) return b; return GCD(b, a % b); } static bool IsSquare(long a) { var sq = (long)Math.Sqrt(a); return sq * sq == a || (sq + 1) * (sq + 1) == a; } }