#1127. Divide and Equalize

Divide and Equalize

当前没有测试数据。

题目描述

给你一个由 nn 个正整数组成的数组 aa 。你可以对它进行以下操作:

  1. 选择一对元素 aia_iaja_j ( 1i,jn1 \le i, j \le niji \neq j );
    1. 从整数 aia_i 的除数中选择一个,即整数 xx ,使得 aimodx=0a_i \bmod x = 0
  2. aia_i 替换为 aix\frac{a_i}{x} ,将 aja_j 替换为 ajxa_j \cdot x

确定是否有可能通过一定次数(可能为零)的运算使数组中的所有元素都相同。

例如,数组 $a = [ 100,2,50,10,1100, 2, 50, 10, 1 ]$包含 55 个元素。对它进行两次操作:

  1. 选择 a3=50a_3 = 50a2=2a_2 = 2 , x=5x = 5 。将 a3a_3 替换为 a3x=505=10\frac{a_3}{x} = \frac{50}{5} = 10 ,将 a2a_2 替换为 a2x=25=10a_2 \cdot x = 2 \cdot 5 = 10 。得到的数组是 aa = [ 100,10,10,10,1100, 10, 10, 10, 1 ];
  2. 选择 a1=100a_1 = 100a5=1a_5 = 1 , x=10x = 10 .将 a1a_1 替换为 a1x=10010=10\frac{a_1}{x} = \frac{100}{10} = 10 ,将 a5a_5 替换为 a5x=110=10a_5 \cdot x = 1 \cdot 10 = 10 。得到的数组是 aa = [ 10,10,10,10,1010, 10, 10, 10, 10 ]。

执行这些运算后,数组 aa 中的所有元素都等于 1010

输入

输入的第一行包含一个整数 tt1t20001 \le t \le 2000 )。( 1t20001 \le t \le 2000 ) - 测试用例数。

然后是每个测试用例的描述。

每个测试用例的第一行包含一个整数 nn ( 1n1041 \le n \le 10^4 ) - 数组 aa 中的元素个数。

每个测试用例的第二行包含 nn 个整数 aia_i ( 1ai1061 \le a_i \le 10^6 ) - 数组 aa 中的元素。

保证所有测试用例中 nn 的总和不超过 10410^4

输出

为每个测试用例输出一行:

  • 如果通过执行一定次数(可能为零)的操作可以使数组中的所有元素相等,则输出 "YES";
  • 否则输出 "否"。

样例输入

7
5
100 2 50 10 1
3
1 1 1
4
8 2 4 2
4
30 50 27 20
2
75 40
2
4 4
3
2 3 1

样例输出

YES
YES
NO
YES
NO
YES
NO