Fork me on GitHub

同余方程

题目描述

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

该方程等价于=>a* x-b* y=1 => a* x+b* y=1 (1/GCD(a,b)==0,即a,b互质)

#include<iostream>
#include<cstdio>
#define LL long long
using namespace std;
void e_gcd(int a,int b,int &x,int &y)
{
    if(b==0)
    {
        x=1;
        y=0;
        return;
    }
    e_gcd(b,a%b,x,y);
    int d=x;
    x=y;
    y=d-a/b*y; 
}
int main()
{
    int a,b,x,y;
    scanf("%d%d",&a,&b);
    e_gcd(a,b,x,y);
    printf("%d",(x%b+b)%b);
    return 0;
} 
posted @ 2017-09-24 17:48  primes  阅读(107)  评论(0编辑  收藏  举报