裴蜀定理

裴蜀定理

\(i|j\) 表示 \(i\)\(j\) 的约数。

\(ax+by=c\)\(x,y\in \mathbb{Z}\),该等式成立的条件为 \(gcd(a,b)|c\)

省流

\[ax+by=gcd(a,b) \]

接下来证明一下:

\(s\)\(gcd(a,b)\),显然 \(s|a\)\(s|b\)

因为 \(x,y\in \mathbb{Z}\),所以得到 \(s|ax\)\(s|by\)

原等式可知 \(c\) 一定为 \(a\)\(b\) 的公约数的倍数,

所以等式成立,\(c\)\(s\) 时最小。

原题链接 P4549

这还需要代码?
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int n,x,ans;
int main(){
ios::sync_with_stdio(false);
cin>>n;
for(int i=1;i<=n;i++){
cin>>x;
ans=__gcd(ans,abs(x));
}
cout<<ans;
return 0;
}
posted @   sad_lin  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示