裴蜀定理
B
e
z
o
u
t
定
理
:
形
如
c
1
x
1
+
c
2
x
2
+
c
3
x
3
+
…
…
+
c
n
x
n
=
m
的
方
程
有
正
整
数
解
当
且
仅
当
g
c
d
(
x
1
,
x
2
…
…
x
n
)
∣
m
Bezout 定理:形如 c_1x_1+c_2x_2+c_3x_3+……+c_nx_n=m的方程有正整数解当且仅当gcd(x_1,x_2……x_n)|m
Bezout定理:形如c1x1+c2x2+c3x3+……+cnxn=m的方程有正整数解当且仅当gcd(x1,x2……xn)∣m
证
明
:
设
g
d
=
g
c
d
(
x
1
,
x
2
,
…
…
,
x
n
)
,
则
g
d
∣
c
1
x
1
.
.
.
.
.
.
g
d
∣
c
n
x
n
,
则
g
d
∣
(
c
1
x
1
+
c
2
x
2
+
…
…
c
n
x
n
)
,
则
g
d
∣
m
,
因
为
对
于
任
意
的
x
1......
x
n
都
可
以
找
到
一
组
c
从
左
边
推
到
右
边
,
则
一
定
可
以
找
到
一
组
c
从
右
边
推
到
左
边
,
所
以
g
d
∣
(
m
)
为
充
分
必
要
条
件
证明:设gd=gcd(x_1,x_2,……,x_n),则gd|c_1x_1......gd|c_nx_n,则gd|(c_1x_1+c_2x_2+……c_nx_n),则gd|m,因为对于任意的x1......xn都可以找到一组c从左边推到右边,则一定可以找到一组c从右边推到左边,所以gd|(m)为充分必要条件
证明:设gd=gcd(x1,x2,……,xn),则gd∣c1x1......gd∣cnxn,则gd∣(c1x1+c2x2+……cnxn),则gd∣m,因为对于任意的x1......xn都可以找到一组c从左边推到右边,则一定可以找到一组c从右边推到左边,所以gd∣(m)为充分必要条件
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll ans;
ll gcd(ll x,ll y){
if(y==0) return 0;/*一定要加这句,不然可能RE*/
return (x%y==0)?y:gcd(y,x%y);
}
int main(){
ll n;
scanf("%lld",&n);
scanf("%lld",&ans);
if(n==0){
}
if(ans<0) ans=-ans;
for(ll i=2;i<=n;i++){
ll val;
scanf("%lld",&val);
if(val<0) val=-val;
ans=gcd(ans,val);
}
printf("%lld",ans);
}