前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >扩展欧几里得算法

扩展欧几里得算法

作者头像
灯珑LoGin
发布2022-10-31 14:33:33
3460
发布2022-10-31 14:33:33
举报
文章被收录于专栏:龙进的专栏龙进的专栏

欧几里得算法

欧几里得算法是用来求最大公约数的,gcd(a,b)=gcd(b, a%b),如此递归下去,直到a%b==0,然后返回。

最终,gcd(a,b)=gcd(c,0),其中,a,b的最大公约数就是c

扩展欧几里得算法(exgcd)

扩展欧几里得算法是解决诸如:求整数x和y使得ax+by=gcd(a,b)的问题的。

这里借用oi-wiki中的证明

然后,代码如下:

代码语言:javascript
复制
int Exgcd(int a, int b, int &x, int &y) {
  if (!b) {
    x = 1;
    y = 0;
    return a;
  }
  int d = Exgcd(b, a % b, x, y);
  int t = x;
  x = y;
  y = t - (a / b) * y;
  return d;
}

转载请注明来源:https://www.longjin666.top/?p=1171

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021年9月7日20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 欧几里得算法
  • 扩展欧几里得算法(exgcd)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档