给定一组正整数a1,a2,…,an。使数组中所有数的乘积(即a1⋅a2…⋅an)可被2n整除。
您可以根据需要多次执行以下操作:选择任意下标i(1≤i≤n),将ai替换为ai⋅i。
但不能对单个下标重复操作。换句话说,所有选定的i值必须不同。
找到需要执行的最小操作数,以使数组中所有元素的乘积可被2n整除。注意,这样一组操作并不总是存在的。
给定一组正整数a1,a2,…,an。使数组中所有数的乘积(即a1⋅a2…⋅an)可被2n整除。
您可以根据需要多次执行以下操作:选择任意下标i(1≤i≤n),将ai替换为ai⋅i。
但不能对单个下标重复操作。换句话说,所有选定的i值必须不同。
找到需要执行的最小操作数,以使数组中所有元素的乘积可被2n整除。注意,这样一组操作并不总是存在的。
输入的第一行包含一个整数t(1≤t≤104),代表测试用例的数量。
每个测试用例的第一行包含一个整数n(1≤n≤2⋅105),代表数组a的长度。
每个测试用例的第二行正好包含n个整数:a1,a2,…,an(1≤ai≤109)。
保证测试中所有测试用例的n值之和不超过2⋅105。
对于每个测试用例,打印最少的操作数,使数组中所有数字的乘积可被2n整除。如果答案不存在,请打印-1。
6 1 2 2 3 2 3 10 6 11 4 13 17 1 1 5 1 1 12 1 1 6 20 7 14 18 3 5
0 1 1 -1 2 1
在第一个测试用例中,所有元素的乘积最初都为2,因此不需要任何操作。
在第二个测试用例中,元素的乘积最初等于6。我们可以对i=2进行操作,使a2变为2⋅2=4,所有元素的乘积变为3⋅4=12,这个数的乘积可被2n=22=4整除。
在第四个测试用例中,即使我们应用了所有可能的运算,我们仍然无法使数的乘积可被2n整除,因为乘积将是(13⋅1)⋅(17⋅2)⋅(1⋅3)⋅(1⋅4)=5304,不能被2n=24=16整除。
在第五个测试用例中,我们可以对i=2和i=4进行操作。