一道GCD问题
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给定一个数组。现在让每个数都加上同一个非负整数 ,使得所有数的gcd(最大公约数)尽可能大。
求这个gcd最大值以及的值。如果有多个能得到这个最大的gcd,那么输出的最小值。

保证数组长度不小于2,且至少有两个不相同的数!

输入描述:

第一行一个正整数    
第二行个正整数a_i 

输出描述:

一行两个数,分别代表最终gcd的最大值、以及达到这个最大值的最小的 
示例1

输入

复制
2
1 3

输出

复制
2 1

说明

k=1的时候,每个数加一,数组变成{2,4},最大公约数为2
示例2

输入

复制
3
4 6 9

输出

复制
1 0

说明

可以证明,无论k取什么值,最终的gcd都是1。所以k取最小值0。