本文主要是介绍hdu - 1576 - A/B(乘法逆元),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题意:求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;
}
这篇关于hdu - 1576 - A/B(乘法逆元)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!