#P30876. 快速幂求逆元

快速幂求逆元

Description

给定$n$组$a_i$,$p_i$,其中$p_i$是质数,求 $a_i$模$p_i$的乘法逆元,若逆元不存在则输出 impossible。
注意:请返回在$0∼p−1$之间的逆元。
乘法逆元的定义
若整数 $b,m$互质,并且对于任意的整数 $a$,如果满足$ b|a$,则存在一个整数 $x$,使得 $a/b≡a× $x (mod m),则称 $x$为 $b$的模$m$乘法逆元,记为$b^{−1}$ (mod m)。
b存在乘法逆元的充要条件是$b$与模数$m$互质。当模数$m$为质数时,$b^{m−2}$即为$b$的乘法逆元。

Input Format

第一行包含整数 $n$。
接下来 $n$行,每行包含一个数组 $a_i$,$p_i$,数据保证$p_i$是质数。

Output Format

输出共$n$行,每组数据输出一个结果,每个结果占一行。
若$a_i$模$p_i$的乘法逆元存在,则输出一个整数,表示逆元,否则输出 impossible。
3
4 3
8 5
6 3
1
2
impossible

Hint

$1≤n≤10^5$,
$1≤a_i,p_i≤2∗10^9$

Source

2.4数学知识 快速幂