我们设该序列为 a_1,a_2,a_3,\ldots,a_n,该序列的最大公因数为 g,则有 a_1=b_1\times g,a_2=b_2\times g,a_3=b_3\times g,\ldots,a_n=b_n\times g(其中 b 数组均为正整数)。
因为 x 为该序列的和,所以 x=a_1+a_2+a_3+\ldots+a_n=b_1\times g+b_2\times g+b_3\times g+\ldots+b_n\times g=(b_1+b_2+b_3+\ldots+b_n)\times g。
所以 g 一定是 x 的因子。
用人话来解释一下,就是通过 a 数组的值的乘法分配律得到 x 的值,然后 x 的值是由一个大于等于 n 的正整数 \times g 组成的,因此 g 一定是 x 的因子。
以上就是两种证明方法。
知道了答案一定是 x 的因子后,我们再来考虑什么样的因子可以作为答案。
现在我们考虑 x 的一个因子 d,如果 n \times d \leq x,则我们可以选择该序列为 d,d,d,\ldots,x-(n-1)\times d,因为 d 为 x 的因子且 n \times d \leq x,所以最后一个数 x-(n-1)\times d 还可以表示为 (x / d-n+1)\times d 。
所以该序列的每个数都为 d 的倍数,因此 d 可能成为答案。
但如果当前的因子 d 使得 n\times d > x,即 x/d<n,那么我们就无法用 d 这个因子填满整个序列,因此无法对答案影响。