题目大意:
题目链接:https://www.luogu.org/problem/P4549
给出个数现求一组整数序列使得,且的值最小。
思路:
裴蜀定理:对整数和它们得的最大公约数,对于任意整数,必然有。
所以我们设,那么我们就把这个方程减少了一项。
那么利用进行次裴蜀定理后,我们就把方程变成了的形式。那么此时显然时有是最小的。
代码:
#include <cstdio>
#include <algorithm>
using namespace std;
int n,a,b;
int main()
{
scanf("%d%d",&n,&a);
for (int i=1;i<n;i++)
{
scanf("%d",&b);
a=__gcd(abs(a),abs(b));
}
printf("%d
",a);
return 0;
}