#ACM0006. 逆元

逆元

逆元

题目描述

给定 nn 组 aia_i,pip_i,其中 pip_i 是质数,求 aia_i 模 pip_i 的乘法逆元,若逆元不存在则输出 impossible。

注意:请返回在 0∼p−10∼p−1之间的逆元。

乘法逆元的定义

若整数 b,mb,m 互质,并且对于任意的整数 aa,如果满足 b∣ab|a,则存在一个整数xx,使得 a/b≡a×x(mod m)a/b≡a×x(mod\ m),则称 xx 为 bb 的模 mm 乘法逆元,记为 b−1(mod m)b^{−1}(mod\ m)。 bb 存在乘法逆元的充要条件是b b 与模数 mm 互质。当模数 mm 为质数时,bm−2b^{m−2} 即为 bb 的乘法逆元。

输入格式

第一行包含整数 nn。

接下来 nn 行,每行包含一个数组ai,pi a_i,p_i,数据保证 pip_i 是质数。

输出格式

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

若 aia_i 模 pip_i 的乘法逆元存在,则输出一个整数,表示逆元,否则输出 impossible。

样例 #1

样例输入 #1

3
4 3
8 5
6 3

样例输出 #1

1
2
impossible

提示

【数据范围】1≤n≤1051≤n≤10^5,1≤ai,pi≤2×1091≤a_i,p_i≤2\times 10^9