中國剩餘定理

https://blog.csdn.net/fire_to_cheat_/article/details/77854058

擴歐

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;

void ex_gcd(int a,int b,int &x,int &y)
{
    if(b==0)
    {
        x=1;
        y=0;
        return;
    }
    else
    {
        ex_gcd(b,a%b,x,y); 
        int tmp=x;//之所以可以這樣寫,是因爲x,y已經發生改變 
        x=y;    
        y=tmp-(a/b)*y;
    }
}
int a,b,x,y;
int main()
{
    scanf("%d%d",&a,&b);
    ex_gcd(a,b,x,y);
    cout<<x<<endl;cout<<(1-a*x)/b<<endl;

    x=(x%b+b)%b;
    cout<<x<<endl;//取最小正整數x 
    cout<<(1-a*x)/b<<endl;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章