扩展欧几里得
Posted 秦时、长浩
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了扩展欧几里得相关的知识,希望对你有一定的参考价值。
题目描述
求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解。
输入输出格式
输入格式:
输入只有一行,包含两个正整数 a, b,用一个空格隔开。
输出格式:
输出只有一行,包含一个正整数 x0,即最小正整数解。输入数据保证一定有解。
1 #include < bits/stdc++.h > 2 3 using namespace std; 4 5 int a, b, x, y, gcd; 6 7 inline int exgcd(int a, int b, int &x, int &y){ 8 if(!b){ 9 x = 1, y = 0; 10 return a; 11 } 12 int r = exgcd(b, a % b, y, x); 13 y -= a / b * x; 14 return r; 15 } 16 17 int main(){ 18 scanf("%d %d", &a, &b); 19 gcd = exgcd(a, b, x, y); 20 printf("%d", (x % b + b) % b); 21 return 0; 22 }
完事。
以上是关于扩展欧几里得的主要内容,如果未能解决你的问题,请参考以下文章