CF1823C Strongly Composite

题目描述

质数是指大于 $1$ 的整数,且恰好有两个约数。例如,$7$ 是质数,因为它有两个约数 $\{1, 7\}$。合数是指大于 $1$ 的整数,且有超过两个不同的约数。 注意,整数 $1$ 既不是质数也不是合数。 我们来看某个合数 $v$。它有若干个约数:有些约数是质数,其他的约数本身也是合数。如果 $v$ 的质数约数的个数小于等于合数约数的个数,我们称 $v$ 为“强合数”。 例如,数 $12$ 有 $6$ 个约数:$\{1, 2, 3, 4, 6, 12\}$,其中 $2$ 和 $3$ 是质数约数,$4$、$6$ 和 $12$ 是合数约数。因此,$12$ 是强合数。其他强合数的例子有 $4$、$8$、$9$、$16$ 等。 另一方面,$15$ 的约数为 $\{1, 3, 5, 15\}$:$3$ 和 $5$ 是质数约数,$15$ 是合数约数。因此,$15$ 不是强合数。其他不是强合数的例子有:$2$、$3$、$5$、$6$、$7$、$10$ 等。 现在给定 $n$ 个整数 $a_1, a_2, \dots, a_n$($a_i > 1$)。你需要构造一个数组 $b_1, b_2, \dots, b_k$,使得满足以下条件: - 数组 $a$ 所有元素的乘积等于数组 $b$ 所有元素的乘积:$a_1 \cdot a_2 \cdot \ldots \cdot a_n = b_1 \cdot b_2 \cdot \ldots \cdot b_k$; - 数组 $b$ 的所有元素都是大于 $1$ 的整数,且都是强合数; - 数组 $b$ 的长度 $k$ 尽可能大。 请你求出数组 $b$ 的最大可能长度 $k$,如果不存在满足条件的数组 $b$,输出 $0$。

输入格式

每组测试数据包含多组测试用例。第一行包含一个整数 $t$($1 \le t \le 1000$),表示测试用例的数量。 每个测试用例的第一行包含一个整数 $n$($1 \le n \le 1000$),表示数组 $a$ 的长度。 每个测试用例的第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($2 \le a_i \le 10^7$),表示数组 $a$。 保证所有测试用例中 $n$ 的总和不超过 $1000$。

输出格式

对于每个测试用例,输出数组 $b$ 的最大长度 $k$,如果不存在满足条件的数组 $b$,输出 $0$。

说明/提示

在第一个测试用例中,可以得到数组 $b = [18]$:$a_1 \cdot a_2 = 18 = b_1$;$18$ 是强合数。 在第二个测试用例中,可以得到数组 $b = [60]$:$a_1 \cdot a_2 \cdot a_3 = 60 = b_1$;$60$ 是强合数。 在第三个测试用例中,不存在满足条件的数组 $b$。 在第四个测试用例中,可以得到数组 $b = [4, 105]$:$a_1 \cdot a_2 \cdot a_3 = 420 = b_1 \cdot b_2$;$4$ 和 $105$ 都是强合数。 由 ChatGPT 4.1 翻译