CHOJ 3301同餘方程【擴充套件歐幾里得】
阿新 • • 發佈:2018-12-13
描述
求關於 x的同餘方程 ax ≡ 1(mod b) 的最小正整數解。
輸入格式
輸入只有一行,包含兩個正整數a,b,用一個空格隔開。
輸出格式
輸出只有一行,包含一個正整數,包含一個正整數 ,包含一個正整數 x0,即最小正整數解。 輸入資料保證一定有解。
樣例輸入
3 10
樣例輸出
7
資料範圍與約定
- 對於 40% 的資料 2 ≤b≤1,000 對於 60% 的資料 2 ≤b≤50,000,000 對於 100%的資料 2 ≤a, b≤2,000,000,000
題解:
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #define ll long long using namespace std; ll exgcd(ll a, ll b, ll &x, ll &y){ if(b == 0){ x = 1, y = 0; return a; } ll d = exgcd(b, a%b, x, y); ll z = x; x = y, y = z - (a/b) * y; return d; } int main() { ll a, b, x, y; cin >> a >> b; ll d = exgcd(a, b, x, y); cout << (x%b+b)%b << endl; return 0; }