裴蜀定理
若gcd(a,b)|c成立,则存在x,y使得ax+by=c成立
此题为裴蜀定理的推广,当存在多个变量时仍然成立
若gcd(a1,a2,a3,a4,…)|c时,存在x的序列使得a1x1+a2x2+a3x3+…=c成立
此题让我们求c的最小值,很明显c的最小值为a序列的最小公约数
注意:当a为负数时,让它变为整数再取gcd
#include<bits/stdc++.h>
using namespace std;
int n;
int gcd(int a,int b)
{
return b==0?a:gcd(b,a%b);
}
int main()
{
cin>>n;
int ans=0;
for(int i=0;i<n;i++)
{
int a;
cin>>a;
if(a<0)a=-a;
ans=gcd(ans,a);
}
cout<<ans<<endl;
return 0;
}