CF1583A Windblume Ode
题目描述
一把装饰着无名花朵的弓,承载着同样无名之人的真挚期望。
你获得了名为 Windblume Ode 的优雅弓。武器上刻有一个包含 $n$ 个($n \ge 3$)正整数的数组(即所有数互不相同,不允许有重复)。
请你找出该数组的一个元素数量最多的子集,使得其所有元素之和是一个合数。一个正整数 $x$ 被称为合数,如果存在正整数 $y$,满足 $1 < y < x$ 且 $x$ 能被 $y$ 整除。
如果存在多个满足条件的最大子集,你可以输出其中任意一个。可以保证在题目给定的约束下,总能找到一个非空的满足条件的子集。
输入格式
每组测试数据包含多个测试用例。第一行包含测试用例的数量 $t$($1 \le t \le 100$)。接下来是每个测试用例的描述。
每个测试用例的第一行包含一个整数 $n$($3 \leq n \leq 100$),表示数组的长度。
第二行包含 $n$ 个互不相同的正整数 $a_{1},a_{2},\dots,a_{n}$($1 \leq a_{i} \leq 200$),表示数组中的元素。
输出格式
每个测试用例输出两行。
第一行输出一个整数 $x$,表示所选子集的最大元素数量。第二行输出 $x$ 个用空格分隔的整数,表示所选子集在原数组中的下标。
说明/提示
在第一个测试用例中,子集 $\{a_2, a_1\}$ 的和为 $9$,这是一个合数。唯一的大小为 $3$ 的子集的和为 $11$,是质数。注意你也可以选择子集 $\{a_1, a_3\}$,其和为 $8 + 2 = 10$,同样是合数,因为它能被 $2$ 整除。
在第二个测试用例中,所有元素的和为 $21$,这是一个合数。因此我们可以直接选择整个数组作为子集。
由 ChatGPT 4.1 翻译