42 lines
895 B
C++
42 lines
895 B
C++
// https://vjudge.csgrandeur.cn/problem/HDU-1576
|
||
#include <bits/stdc++.h>
|
||
using namespace std;
|
||
typedef long long LL;
|
||
/*
|
||
测试用例
|
||
2
|
||
1000 53
|
||
87 123456789
|
||
|
||
答案
|
||
7922
|
||
6060
|
||
|
||
总结:
|
||
1、如果使用费马小定理+快速幂求逆元,一定要注意使用LL,防止爆int。
|
||
*/
|
||
const int MOD = 9973;
|
||
|
||
LL qmi(LL a, LL k, LL p) {
|
||
LL res = 1;
|
||
while (k) {
|
||
if (k & 1) res = res * a % p; //如果res是int,可能会越界
|
||
k >>= 1;
|
||
a = a * a % p; //如果a是int, 可能会越界
|
||
}
|
||
return res;
|
||
}
|
||
|
||
int main() {
|
||
int T;
|
||
cin >> T;
|
||
while (T--) {
|
||
LL a, b;
|
||
cin >> a >> b;
|
||
LL x;
|
||
x = qmi(b, MOD - 2, MOD); // b理解为分母,同余MOD的逆元,变除法为乘法
|
||
LL res = a * x % MOD; // a* b在模MOD下的逆元 x
|
||
printf("%lld\n", res);
|
||
}
|
||
return 0;
|
||
} |