题解:P13014 [GESP202506 五级] 最大公因数
niuniudundun · · 题解
题目传送门
题目大意
给定
解法
众不一定周知,最大公约数有一个性质:
利用此性质可以带入原式,有:
注意到画下划线的部分计算不需要用到
代码
利用函数 __gcd 可以在对数复杂度计算最大公因数。
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+1;
int n,q,a[maxn],gcd;
signed main(){
cin>>n>>q;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=2;i<=n;i++){
gcd=__gcd(gcd,abs(a[i]-a[1]));
}
for(int i=1;i<=q;i++){
cout<<__gcd(gcd,a[1]+i)<<endl;
}
return 0;
}
小广告:游记。