题意:求A / B % 9973,但只给出 n = A % 9973 和 B(0 <= n < 9973, 1 <= B <= 10^9)。
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1576
——>>求逆元练手。。
#include <cstdio>
typedef long long LL;
const int MOD = 9973;
LL n, B;
void Read()
{
scanf("%I64d%I64d", &n, &B);
}
void Gcd(LL a, LL b, LL& d, LL& x, LL& y)
{
if (!b)
{
d = a;
x = 1;
y = 0;
}
else
{
Gcd(b, a % b, d, y, x);
y -= a / b * x;
}
}
LL Inv(int a, int n)
{
LL ret = 0, d, y;
Gcd(a, n, d, ret, y);
return d == 1 ? (ret + n) % n : -1;
}
void Solve()
{
printf("%I64d\n", n * Inv(B, MOD) % MOD);
}
int main()
{
int T;
scanf("%d", &T);
while (T--)
{
Read();
Solve();
}
return 0;
}