题解 P4549 【【模板】裴蜀定理】
FifthAxiom · · 题解
首先,介绍裴蜀定理及其证明。
裴蜀定理
若
证明:
首先,易知
d\mid a 且d\mid b ,由整除性质可知\forall x,y \in \mathbb Z ,d\mid ax+by 。令
p 为ax+by 的最小正整数值,q=\lfloor \dfrac{a}{p}\rfloor ,r=a\mod p = a - qp=a-q(ax+by)=a(1-qx)+bqy ,可知r 也是a,b 的线性组合(ax+by 的一种形式)。因为p 是ax+by 的最小正值,0\le r < p ,故r=0 ,即p\mid a .同理,我们可以证得
p\mid b 。因为所有
ax+by 都是d 的倍数,故p=d 。证毕
将裴蜀定理推广到本题上,可知
代码如下
#include <cstdio>
int n, a, ans;
int gcd(int x, int y) {//辗转相除法求gcd
return !y ? x : gcd(y, x % y);
}
int main() {
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
scanf("%d", &a);
a = a > 0 ? a : -a;//遇到负数时求相反数
ans = gcd(ans, a);//递推求整个序列的gcd
}
return !printf("%d\n", ans);
}
目前本题的大部分题解都只证明了