NOIP2012 同余方程-拓展欧几里得

时间:2022-02-24 15:32:43

题目描述

求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解。

输入输出格式

输入格式:

输入只有一行,包含两个正整数 a, b,用一个空格隔开。

输出格式:

输出只有一行,包含一个正整数 x0,即最小正整数解。输入数据保证一定有解。

 #include<iostream>
 #include<cstring>
 #include<cstdio>
 #include<cstdlib>
 #include<cmath>
 #include<algorithm>
 #define LL long long
 #define FOR(a,b,c) for(int a=b;a<=c;a++)
 #define maxn 1024
 using namespace std;
 LL a,b,d,x,y,k;
 void ggcd(LL a,LL b,LL &d,LL &x,LL &y){
     ){
         d=a;
         x=;
         y=;
     }else{
         ggcd(b,a%b,d,y,x);
         y-=x*(a/b);
     }
 }
 int main()
 {
     scanf("%lld%lld",&a,&b);
     ggcd(a,b,d,x,y);
     k=b/d;
     ) x-=k;
     ) x+=k;
     printf("%lld",x);
     ;
 }