CF2029E Common Generator
题目描述
对于两个整数 $x$ 和 $y$($x,y\ge 2$),如果且仅如果可以通过若干次(可能为零次)以下操作将 $x$ 变换为 $y$,则称 $x$ 是 $y$ 的一个**生成器**:
* 选取一个 $x$ 的约数 $d$($d\ge 2$),然后将 $x$ 增加 $d$。
例如:
* $3$ 是 $8$ 的生成器,因为可以执行如下操作:
$$
3 \xrightarrow{d = 3} 6 \xrightarrow{d = 2} 8
$$
* $4$ 是 $10$ 的生成器,因为可以执行如下操作:
$$
4 \xrightarrow{d = 4} 8 \xrightarrow{d = 2} 10
$$
* $5$ 不是 $6$ 的生成器,因为无法通过上述操作将 $5$ 转换为 $6$。
现在,Kevin 给你一个长度为 $n$ 的数组 $a$,其中包含两两不同的整数($a_i \ge 2$)。
你需要寻找一个整数 $x\ge 2$,使得对每个 $1\le i\le n$,$x$ 都是 $a_i$ 的生成器;如果不存在这样的整数,则输出 $-1$。
输入格式
输入包含多组测试数据。
第一行包含一个整数 $t$($1\le t\le 10^4$)——测试用例的组数。
接下来描述各组测试用例。
每组测试用例的第一行包含一个整数 $n$($1\le n\le 10^5$)——数组 $a$ 的长度。
第二行包含 $n$ 个整数 $a_1,a_2,\ldots,a_n$($2\le a_i\le 4\cdot 10^5$)——数组 $a$ 的元素。保证所有 $a_i$ 两两不同。
所有测试用例中,$\sum n \le 10^5$。
输出格式
对于每组测试用例,输出一个整数 $x$——所找到的满足条件的生成器;如果不存在,则输出 $-1$。
如果存在多个可行答案,输出任意一个即可。
说明/提示
* 对于第一个测试用例,取 $x=2$:
* $2$ 是 $8$ 的生成器,因为可以:
$$
2 \xrightarrow{d = 2} 4
\xrightarrow{d = 4} 8
$$
* $2$ 是 $9$ 的生成器,因为可以:
$$
2 \xrightarrow{d = 2} 4
\xrightarrow{d = 2} 6
\xrightarrow{d = 3} 9
$$
* $2$ 是 $10$ 的生成器,因为可以:
$$
2 \xrightarrow{d = 2} 4
\xrightarrow{d = 2} 6
\xrightarrow{d = 2} 8
\xrightarrow{d = 2} 10
$$
* 对于第二个测试用例,可以证明不存在同时生成 $\{2,3,4,5\}$ 的共同生成器。