拓展欧几里得法求逆元

 板子:

x即为最终答案,x可能为负数,加模数即可

乘法逆元 - OI Wiki (oi-wiki.org)

void exgcd(int a, int b, int& x, int& y) {
	if (b == 0) {
		x = 1, y = 0;
		return;
	}
	exgcd(b, a % b, y, x);
	y -= a / b * x;
}

使用: 

	exgcd(a, n + 1, x, y);//x就是逆元
	while (x <= 0)x += n + 1;

原理:

最大公约数 - OI Wiki (oi-wiki.org)

拓展欧几里得算法: 

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;
}

 

相关推荐

  1. C#最大公约数: 得算法 vs 辗转相除法

    2024-02-03 09:32:04       20 阅读
  2. 得算法

    2024-02-03 09:32:04       26 阅读
  3. 计算得距离

    2024-02-03 09:32:04       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-03 09:32:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-03 09:32:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-03 09:32:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-03 09:32:04       18 阅读

热门阅读

  1. JVM学习

    JVM学习

    2024-02-03 09:32:04      35 阅读
  2. MySQL之DQL正则表达式

    2024-02-03 09:32:04       32 阅读
  3. 数据库指定某个列的某个值优先排序

    2024-02-03 09:32:04       30 阅读
  4. H5调用安卓原生相机API案例

    2024-02-03 09:32:04       31 阅读
  5. 【设计模式之装饰器模式 -- C++】

    2024-02-03 09:32:04       35 阅读
  6. 前端工程化之:webpack1-12(常用扩展)

    2024-02-03 09:32:04       35 阅读
  7. 【Redis】理论基础 - 持久化

    2024-02-03 09:32:04       29 阅读