要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1)。
Input
数据的第一行是一个T,表示有T组数据。
每组数据有两个数n(0 <= n < 9973)和B(1 <= B <= 10^9)。
每组数据有两个数n(0 <= n < 9973)和B(1 <= B <= 10^9)。
Output
对应每组数据输出(A/B)%9973。
扩展欧几里得即可:
#include <cstdio>
const int MOD = 9973;
int extgcd(int a, int b, int &x, int &y)
{
int d = a;
if(!b)
{
x = 1; y = 0;
}
else
{
d = extgcd(b, a % b, y, x);
y -= (a / b) * x;
}
return d;
}
int res(int a)
{
int x, y;
int d = extgcd(a, MOD, x, y);
return (MOD + x % MOD) % MOD;
}
int main()
{
int cas, n, b;
scanf("%d", &cas);
while(cas--)
{
scanf("%d%d", &n, &b);
b = res(b);
int ans = (n * (b % MOD)) % MOD;
printf("%d\n", ans);
}
return 0;
}