CF2029E.Common Generator

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

对于两个整数 xx 和 yy(x,y≥2x,y\ge 2),如果且仅如果可以通过若干次(可能为零次)以下操作将 xx 变换为 yy,则称 xx 是 yy 的一个生成器:

  • 选取一个 xx 的约数 dd(d≥2d\ge 2),然后将 xx 增加 dd。

例如:

  • 33 是 88 的生成器,因为可以执行如下操作:

    3→d=36→d=28 3 \xrightarrow{d = 3} 6 \xrightarrow{d = 2} 8

  • 44 是 1010 的生成器,因为可以执行如下操作:

    4→d=48→d=210 4 \xrightarrow{d = 4} 8 \xrightarrow{d = 2} 10

  • 55 不是 66 的生成器,因为无法通过上述操作将 55 转换为 66。

现在,Kevin 给你一个长度为 nn 的数组 aa,其中包含两两不同的整数(ai≥2a_i \ge 2)。

你需要寻找一个整数 x≥2x\ge 2,使得对每个 1≤i≤n1\le i\le n,xx 都是 aia_i 的生成器;如果不存在这样的整数,则输出 −1-1。

输入格式

输入包含多组测试数据。

第一行包含一个整数 tt(1≤t≤1041\le t\le 10^4)——测试用例的组数。

接下来描述各组测试用例。

每组测试用例的第一行包含一个整数 nn(1≤n≤1051\le n\le 10^5)——数组 aa 的长度。

第二行包含 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n(2≤ai≤4⋅1052\le a_i\le 4\cdot 10^5)——数组 aa 的元素。保证所有 aia_i 两两不同。

所有测试用例中,∑n≤105\sum n \le 10^5。

输出格式

对于每组测试用例,输出一个整数 xx——所找到的满足条件的生成器;如果不存在,则输出 −1-1。

如果存在多个可行答案,输出任意一个即可。

输入输出样例

  • 输入#1

    4
    3
    8 9 10
    4
    2 3 4 5
    2
    147 154
    5
    3 6 8 25 100000

    输出#1

    2
    -1
    7
    3

说明/提示

  • 对于第一个测试用例,取 x=2x=2:

    • 22 是 88 的生成器,因为可以:

      2→d=24→d=48 2 \xrightarrow{d = 2} 4 \xrightarrow{d = 4} 8

    • 22 是 99 的生成器,因为可以:

      2→d=24→d=26→d=39 2 \xrightarrow{d = 2} 4 \xrightarrow{d = 2} 6 \xrightarrow{d = 3} 9

    • 22 是 1010 的生成器,因为可以:

      2→d=24→d=26→d=28→d=210 2 \xrightarrow{d = 2} 4 \xrightarrow{d = 2} 6 \xrightarrow{d = 2} 8 \xrightarrow{d = 2} 10

  • 对于第二个测试用例,可以证明不存在同时生成 {2,3,4,5}\{2,3,4,5\} 的共同生成器。

输入解题思路,AI测评打分。不知道怎么写?

首页