逆元方程
- (A/B)%9973,求余,除法不满足交换性,可改为求B关于9973的逆元x,
- 这样结果等价于Ax%9973等价于x*A%9973等价于xn%9973,
package _6数学问题;
import java.util.Scanner;
public class j逆元方程 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int T=in.nextInt();
for(int i=0;i<T;i++) {
int n=in.nextInt();
int B=in.nextInt();
try {
getlina(B,9973);
x = (x%9973 + 9973) % 9973;
System.out.println(x * n % 9973);
} catch (Exception e) {
e.printStackTrace();
}
}
}
static int x;
static int y;
private static long getlina(int a, int b) throws Exception {
int d= getlin(a,b,1);
x=((x%b+b)%b);
return d;
}
private static int getlin(int a, int b, int d) throws Exception {
int f=getext(a,b);
if(d%f!=0)throw new Exception();
int beishu=d/f;
x*=beishu;
y*=beishu;
return f;
}
private static int getext(int a, int b) {
if(b==0) {
x=1;
y=0;
return a;
}
int d=getext(b,a%b);
int x1=x;
x=y;
y=x1-a/b*y;
return d;
}
}