洛谷 P4549 【模板】裴蜀定理
传送门
解题思路
裴蜀定理
首先第一个字读\(p\acute{e}i\)
对于一个方程\(ax+by=c\)
有整数解的条件是\(\gcd(a,b)|c\)
证明如下:
\[\because\gcd(a,b)|a\quad\gcd(a,b)|b
\]
\[\therefore\gcd(a,b)|ax\quad\gcd(a,b)|by
\]
\[\therefore\gcd(a,b)|ax+by
\]
即
\[gcd(a,b)|c
\]
证毕。
推广到n个数
则对于这个题,
\[\gcd(A_1,A_2,A_3\cdots A_n)|\sum_{i}^{n}(A_i*X_i)
\]
所以最后答案的最小值即为前面这些数的gcd(取正数)。
AC代码
#include<iostream>
#include<cmath>
using namespace std;
int n,ans,a;
int gcd(int a,int b){
return b==0?a:gcd(b,a%b);
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++){
cin>>a;
ans=gcd(ans,abs(a));
}
cout<<ans;
return 0;
}