CF1468L Prime Divisors Selection

题目描述

给定一个长度为 $k$ 的整数序列 $A = [a_1, a_2, \dots , a_k]$,其中每个 $a_i \geq 2$。如果存在一个素数序列 $P = [p_1, p_2, \dots, p_k]$,使得 $a_1$ 能被 $p_1$ 整除,$a_2$ 能被 $p_2$ 整除,依此类推,则称 $P$ 适用于序列 $A$。 如果素数序列 $P$ 中没有只出现一次的整数(即所有素数都至少出现两次),则称 $P$ 是“友好”的。 如果对于序列 $A$,所有适用于 $A$ 的素数序列 $P$ 都是友好的(即不存在适用于 $A$ 但不是友好的 $P$),则称 $A$ 是“理想的”。例如,序列 $[2, 4, 16]$ 是理想的,而序列 $[2, 4, 6]$ 不是理想的(因为存在 $P = [2, 2, 3]$,它适用于 $A$,但不是友好的)。 现在给定 $n$ 个互不相同的整数 $x_1, x_2, \dots, x_n$,你需要从中恰好选出 $k$ 个数,使得它们组成的序列是理想的。如果无法做到,输出 $0$。注意,每个整数最多只能选一次。

输入格式

第一行包含两个整数 $n$ 和 $k$($1 \leq k \leq n \leq 1000$)。 第二行包含 $n$ 个两两不同的整数 $x_1, x_2, \dots, x_n$($2 \leq x_i \leq 10^{18}$)。

输出格式

如果无法从 $x_1, x_2, \dots, x_n$ 中选出恰好 $k$ 个整数组成理想序列,输出 $0$。 否则,输出 $k$ 个两两不同的整数,表示选出的理想序列。如果有多种答案,输出任意一种即可。

说明/提示

由 ChatGPT 4.1 翻译