不定方程与扩展欧几里得

Posted mabeytang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不定方程与扩展欧几里得相关的知识,希望对你有一定的参考价值。

时间不多了,先把代码放上来。

 1 #include<iostream>
 2 #include<cstring>
 3 #include<cstdio>
 4 
 5 using namespace std;
 6 
 7 typedef long long ll;
 8 
 9 ll gcd(ll a, ll b)
10 {
11     return (b == 0)?a:(gcd(b, a%b));
12  } 
13 
14 ll exgcd(ll a, ll b, ll &x, ll &y)
15 {
16     if(b == 0){
17         x = 1; y = 0;
18         return a;
19     }
20     ll t = exgcd(b, a%b, y, x);
21     y -= (a/b)*x;
22     
23     return t;
24  } 
25 
26 int main()
27 {
28     ll x, y;
29     ll a, b, m;
30     cin>>a>>b>>m;
31     // 有解的充要条件 
32     if(m%gcd(a, b) == 0) cout<<"Yes
"; 
33     ll s = exgcd(a, b, x, y);
34     x = x*m/s;
35     y = y*m/s;
36     for(int t = -100;t<=300;t++){
37         printf("%lld*(%lld) + %lld*(%lld) = %lld
", a, x, b, y, m);
38         /*
39         x -= b/s;
40         y += a/s;
41         */
42         // 通解, 可往左右走 
43         x -= b/s;
44         y += a/s;
45     }
46     
47     return 0;
48 }

 

以上是关于不定方程与扩展欧几里得的主要内容,如果未能解决你的问题,请参考以下文章

简单数论总结2——同余方程与扩展欧几里得算法

算法?日更?第五十六期扩展欧几里得算法

扩展欧几里得

扩展欧几里得算法(解不定方程)

扩展欧几里得算法的思想与推导

扩展欧几里得算法裴蜀定理与乘法逆元