HDU1576 A/B(乘法逆元)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU1576 A/B(乘法逆元)相关的知识,希望对你有一定的参考价值。

这题大概是,整数模9973乘法群?然后存在乘法逆元。

于是题目要求$A \div B \pmod {9973} $其实就相当于求$A \times B^{-1}\pmod {9973} $。

只要求出B的逆元就OK了。

计算模n下的乘法逆元可以用用扩展欧几里得算法求解,即解下面的线性同余方程:

$$ Ax \equiv 1 \pmod {n} $$

 1 #include<cstdio>
 2 #include<cstring>
 3 using namespace std;
 4 #define mod(x,y) (((x)%(y)+(y))%(y))
 5 #define lld long long
 6 lld exgcd(lld a,lld b,lld &x,lld &y){
 7     if(b==0){
 8         x=1; y=0;
 9         return a;
10     }
11     lld d=exgcd(b,a%b,x,y);
12     lld t=y;
13     y=x-a/b*y;
14     x=t;
15     return d;
16 }
17 lld ine(lld a,lld n){
18     lld x,y;
19     exgcd(a,n,x,y);
20     return mod(x,n);
21 }
22 int main(){
23     lld a,b;
24     int t;
25     scanf("%d",&t);
26     while(t--){
27         scanf("%lld%lld",&a,&b);
28         printf("%lld\n",a*ine(b,9973)%9973);
29     }
30     return 0;
31 } 

 

以上是关于HDU1576 A/B(乘法逆元)的主要内容,如果未能解决你的问题,请参考以下文章

hdu1576-A/B-(同余定理+乘法逆元+费马小定理+快速幂)

hdu1576(扩展gcd求乘法逆元)

HDU 1576 A/B(扩展欧几里得 求 逆元)

HDU-1576 A/B (扩展欧几里得求逆元)

hdu1576 A/B 数论

HDU - 1576(费马小定理求逆元)