【扩展欧几里得】Codevs 1200: [noip2012]同余方程

时间:2021-06-17 10:40:50

Description

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

Input Description

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

Output Description

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


  裸的exgcd,不多讲了。。
  
 #include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm> typedef long long ll; using namespace std; ll x,y; void exgcd(ll a,ll b)
{
if(b==)
{
x=;
y=;
return;
}
exgcd(b,a%b);
ll
sb=x;
x=y;
y=sb-(a/b*y);
} void solve(ll a,ll b)
{
exgcd(a,b);
printf("%lld",(x+b)%b);//最小正整数解
} int main()
{
ll a,b;
scanf("%lld%lld",&a,&b);
solve(a,b);
return ;
}