题目描述
题解
裴蜀定理:若a,b是整数,且(a,b)=d,那么对于任意的整数x,y,ax+by都一定是d的倍数,特别地,一定存在整数x,y,使ax+by=d成立。
也就是说,忽略符号,(a,b)就是ax+by所能表示的最小正整数
对所有的数求gcd即可
代码
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
#define Abs(x) ((x>0)?x:-x)
int n,x,ans;
int gcd(int a,int b)
{
if (!b) return a;
else return gcd(b,a%b);
}
int main()
{
scanf("%d",&n);
scanf("%d",&ans);ans=Abs(ans);
for (int i=1;i<n;++i)
{
scanf("%d",&x);x=Abs(x);
ans=gcd(ans,x);
}
printf("%d\n",ans);
}