洛谷Oj-P1082 同餘方程-擴充套件歐幾里得
阿新 • • 發佈:2019-01-25
題目描述:
求關於 x 的同餘方程 ax ≡ 1 (mod b)的最小正整數解。
AC程式碼:
void ex_gcd(int a,int b,int &x,int &y)
{
if(b == 0)
{
x = 1;
y = 0;
}
else
{
ex_gcd(b,a % b,y,x);
y -= (a / b) * x;
}
return;
}
int main()
{
int a,b,x,y;
cin >> a >> b;
ex_gcd(a,b,x,y);
cout << (x + b) % b << endl;//防止x為負數,但是為什麼對b取模呢
return 0;
}
解決方法:
由裴蜀定理得,gcd(a,b) = 1
擴充套件歐幾里得演算法:
代入①、②
ab⌋x+y}+(a%b)x=gcd(b,a%b)
令
數論這一部分還是不太懂……