import java.io.*;
class Main{
static BufferedReader read = new BufferedReader(new InputStreamReader(System.in));
public static int qmi(int a, int k, int p){
long res = 1;
while(k > 0){
if((k & 1) != 0) res = res * a % p;
a = (int)((long) a * a % p);
k >>= 1;
}
return (int)res;
}
public static void main(String[] args) throws Exception{
int n = Integer.valueOf(read.readLine());
while(n -- > 0){
String[] ss= read.readLine().split(" ");
int a = Integer.valueOf(ss[0]);
int m = Integer.valueOf(ss[1]);
int qmi = qmi(a, m - 2, m);
if(a % m != 0) System.out.println(qmi);
else System.out.println("impossible");
}
}
}
推导过程中a是怎么消掉的
a/b = a * b^-1 等式两边同乘1/a=> 1/b = b^-1
是否可以同乘 1/a,还有待商榷,因为这个是同余式,不是相等式,只有当a与m互质时才可以消去,题目里也没有给出a与m的关系,我感觉还是不太了解是如何消去的
确实,我也在纠结这个
有帮助 推导的倒数第二个式子好像多了个b hh
有人知道 如果p是b的倍数的话,两者不互质,应该impossible,但是为啥还有结果?
哦,我懂了,因为保证了p是质数
想问一下,题目求的不是 逆元吗,为什么最终答案是 逆元再去 mod p
自己看题目吧
这是因为题目要求的是返回1 ~ p - 1之间的逆元
谢谢
推导好评