#arc126c. [arc126_c]Maximize GCD

[arc126_c]Maximize GCD

题目描述

给定一个由 NN 个正整数组成的序列:A=(A1,A2,,AN)A = (A_1, A_2, \ldots, A_N)。你可以对这个序列执行以下操作,至少为零次、最多为 KK 次:

  • 选择 i{1,2,,N}i\in \{1,2,\ldots,N\} 并将 AiA_i 增加 11

在执行完操作后,找出 gcd(A1,A2,,AN)\\gcd(A_1, A_2, \ldots, A_N) 的最大可能值。

约束条件

  • 2N3×1052\leq N\leq 3\times 10^5
  • 1K10181\leq K\leq 10^{18}
  • 1Ai3×1051 \leq A_i\leq 3\times 10^5

输入

从标准输入中按以下格式获得输入:

NN KK A1A_1 A2A_2 \ldots ANA_N

输出

打印执行操作后 gcd(A1,A2,,AN)\\gcd(A_1, A_2, \ldots, A_N) 的最大可能值。

示例输入 1

3 6
3 4 9

示例输出 1

5

一种使得 gcd(A1,A2,A3)=5\\gcd(A_1, A_2, A_3) = 5 的方法如下:

  • i=1i = 1 执行两次操作,对 i=2i = 2 执行一次操作,对 i=3i = 3 执行一次操作,总共四次操作,不超过 K=6K=6
  • 现在我们有 A1=5A_1 = 5A2=5A_2 = 5A3=10A_3 = 10,它们的 gcd(A1,A2,A3)=5\\gcd(A_1, A_2, A_3) = 5

示例输入 2

3 4
30 10 20

示例输出 2

10

不执行任何操作即可使得 gcd(A1,A2,A3)=10\\gcd(A_1, A_2, A_3) = 10

示例输入 3

5 12345
1 2 3 4 5

示例输出 3

2472