【题解】UVA10407 题解
UVA10407 题解
思路分析
我们设每一个数为 ,且有 ()。在题目中, 与 一定,于是令 与 分别为 和 。
为抵消 并得到有关整除的相关信息,我们设有 ,计算 。得到 ,所以有 。由于所有的 和 都要满足,所以,求所有 的最大公因数即可,这个即为答案。注意要满足 ,所以要进行排序。
关键代码
sort(a + 1, a + cur + 1);
int ans = a[cur] - a[cur - 1];
for(int i = cur - 1;i >= 2;i--) //倒着计算,不会出现负数。
{
ans = __gcd(ans, a[i] - a[i - 1]);
}
cout << ans << endl;