裴蜀定理(或 贝祖定理 ),说明了对任何 整数 a、b和它们的 最大公约数 d,关于 未知数 x和y的线性不定方程(称为裴蜀等式):若a,b是整数,且 gcd (a,b)=d,那么对于任意的整数x,y,ax+by都一定是d的倍数,特别地,一定存在整数x,y,使ax+by=d成立。
简单来说:一定存在整数x,y,满足ax+by=gcd(a,b)
关于裴蜀定理的证明,这里就直接传送门了裴蜀定理的证明 - 知乎 (zhihu.com)
裴蜀定理推广
一定存在整数x,y,满足ax+by=gcd(a,b)×n
裴蜀定理再推广
一定存在整数,满足
例题:P4549 【模板】裴蜀定理 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
思路直接来自裴蜀定理的推广,代码如下:
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
int ans;
cin >> ans;
for(int i = 1; i < n; i++){
int x;
cin >> x;
ans = __gcd(ans, abs(x));
}
cout << ans << "\n";
return 0;
}