原题地址-Luogu
裴蜀定理
对于整数a,b
和正整数x,y
,ax+by=c
成立的充要条件是gcd(a,b)%c=0
.
推论:a,b
互质的充要条件是存在整数x,y
,使ax+by=1
.
拓展:对于n
个整数a1,a2,......,an
,a1*x1+a2*x2+......+an*xn=S
成立的充要条件是gcd(a1,a2,......an)%S=0
.
AC
代码
//#pragma GCC optimize(2)
//std::ios::sync_with_stdio(0)
//clock_t st=clock();
#include<bits/stdc++.h>
#define abss(x) ((x)>(0)?(x):(-1)*(x))
#define maxs(a,b) ((a)>(b)?(a):(b))
#define mins(a,b) ((a)<(b)?(a):(b))
#define FOR(i,a,b) for(int i=(a);i<=(b);++i)
#define ROF(i,a,b) for(int i=(a);i>=(b);--i)
#define mem(a) memset(a,0,sizeof(a))
const int INF (1<<30);
const int inf (-1<<30);
using namespace std;
int main(){
int n;
cin>>n;
int ans=0,t;
FOR(i,1,n){
scanf("%d",&t);
t=abss(t);
ans=__gcd(ans,t);
}
cout<<ans;
}