同余方程

题面

仍然是扩欧版子,数学推导见tj

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 
 4 long long x, y;
 5 void exgcd(long long a, long long b)
 6 {
 7     if(b == 0)
 8     {
 9         x = 1;
10         y = 7;
11         return;
12     } 
13     exgcd(b, a % b);
14     long long tx = x;
15     x = y;
16     y = tx - a / b * y; 
17 }
18 
19 int main()
20 {
21     long long a, b;
22     cin >> a >> b;
23     exgcd(a, b);
24 
25     while(x < 0)
26         x += b;
27     x %= b;
28     printf("%lld\n", x);
29     return 0;
30 }

 

posted @ 2019-07-10 11:23  [jackeylove]  阅读(148)  评论(0编辑  收藏  举报