HDU【1576】A/B(逆元)

題目鏈接

題解:

因爲A%9973/B%9973 != A/B%9973,所以要用到逆元,求出B關於9973的逆元,在乘n就行了(A/B=A乘B的逆元),我這裏用的快速冪求逆元。

不懂逆元的可以點這裏

代碼:

#include<iostream>
#include<stdio.h>
using namespace std;
const int MOD=9973;
typedef long long LL;
LL n,b;
LL mod_pow(LL x,int m)
{
    LL ans=1;
    while(m){
        if(m&1) ans=ans*x%MOD;
        x=x*x%MOD;
        m>>=1;
    }
    return ans;
}
int main()
{
    int T;
    scanf("%d",&T);
    while(T--){
        scanf("%I64d%I64d",&n,&b);
        LL inv,sum;
        inv=mod_pow(b,MOD-2);
        sum=inv*n%MOD;
        printf("%I64d\n",sum);
    }
    return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章