【扩展欧几里得】codevs1200-同余方程
【题目大意】
求关于 x 同余方程 ax ≡ 1 (mod b)的最小正整数解。
【思路】
求解ax+by=1,只要x<0就不断加上 b。
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 7 void extgcd(int a,int b,int &x,int &y) 8 { 9 if (b==0) 10 { 11 x=0;y=1; 12 return; 13 } 14 extgcd(b,a%b,x,y); 15 int tmp=x; 16 x=y; 17 y=tmp-(a/b)*y; 18 } 19 20 int main() 21 { 22 int a,b; 23 scanf("%d%d",&a,&b); 24 int x,y; 25 extgcd(a,b,x,y); 26 while (x<=0) x+=b; 27 printf("%d",x); 28 return 0; 29 }