裴蜀定理
思路
不定方程 \(ax+by=c\) 成立的充要条件为 \(\gcd(a,b)|c\)。
证明:
有 \(\gcd(a,b)|ax,\gcd(a,b)|by\)
\(∴\gcd(a,b)|ax+by\)
\(∴\gcd(a,b)|c\)
扩展:
不定方程 \(\displaystyle\sum_{i=1}^n (a_i\times b_i)=c\) 成立的充要条件为 \(\gcd(a_1,a_2,a_3,...,a_n)|c\)。
证明同理。
例题
显然,由于 \(\gcd(a_1,a_2,a_3,...,a_n)|s\),最小的 \(s\) 就是 \(\gcd(a_1,a_2,a_3,...,a_n)|s\)。
#include <bits/stdc++.h>
using namespace std;
int n, x, ans;
int main() {
cin >> n;
while (n--) {
cin >> x;
x = abs(x);
if (!ans)
ans = x;
else
ans = __gcd(ans, x);
}
cout << ans;
return 0;
}