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\}$ 的共同生成器。