2923. 快速幂求逆元 标准IO
时间限制:1000 MS 内存限制:128 MB    算法评级:    状态:

给定 $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(\bmod m)$,则称 $x$为 $b$ 的模 $m$ 乘法逆元,记为 $b^{−1}(\bmod m)$。

$b$存在乘法逆元的充要条件是$ b$ 与模数$ m$互质。当模数$ m$ 为质数时,$b^{m−2}$即为$ b$ 的乘法逆元。

输入格式

第一行包含整数 $n$。

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

输出格式

输出共 $n$ 行,每组数据输出一个结果,每个结果占一行。

若 $a_i$模 $p_i$ 的乘法逆元存在,则输出一个整数,表示逆元,否则输出impossible

数据范围

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

输入样例:

3
4 3
8 5
6 3

输出样例:

1
2
impossible
代码运行状态:

输出