由题得A=Bx,且A=9973*y+n
所以可得Bx-9973*y=n
由扩展欧几里得算法可求得x
又因为(A/B)%9973的结果就是x%9973,解之。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
long long extend_gcd(long long a,long long b,long long &x,long long &y){
if(a==0&&b==0) return -1;
if(b==0){x=1;y=0;return a;}
long long d=extend_gcd(b,a%b,y,x);
y-=a/b*x;
return d;
}
int main(){
int t;
scanf("%d",&t);
while(t--){
long long n,B;
scanf("%I64d%I64d",&n,&B);
long long x,y;
extend_gcd(B,9973,x,y);
x*=n;
cout<<(x%9973+9973)%9973<<endl;
}
return 0;
}