Nghịch đảo modulo
Submit solution
Points:
2 (partial)
Time limit:
1.0s
Memory limit:
98M
Author:
Problem type
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG
Cho 2 số nguyên không âm n và m hãy tìm số tự nhiên nhỏ nhất k sao cho n*k chia m dư 1 khi đó k được gọi là nghịch đảo modulo của n theo modul m
Input
Dòng đầu gồm số bộ test \(t (1 \leq t \leq 1000)\)
Các dòng tiếp theo gồm \(t\) dòng mỗi dòng chứa hai số tự nhiên n và m trong đó \((0 \leq n,m \leq 10^6)\)
Output
Với mỗi bộ test, nếu không tồn tại nghịch đảo đảo modulo của n theo modul m thì xuất ra 0 ngược lại thì xuất ra giá trị nghịch đảo modulo đó
Ví dụ
Input
5
17 7
18 8
6 13
9 16
5 0
Output
5
0
11
9
0
Comments
Gợi ý
Có thể áp dụng định lý Fecma nhỏ
Có thể dùng thuật chia Euclide mở rộng