牛客月賽 費馬小定理求逆元

https://ac.nowcoder.com/acm/contest/275/A?&headNav=acm

#include<bits/stdc++.h>
using namespace std;
const int p = 1000000007;
typedef long long ll;
ll pow_mod(ll a, ll b, ll p){// 快速冪  a的b次方求餘p
    ll ret = 1;
    while(b){
        if(b & 1) ret = (ret * a) % p;
        a = (a * a) % p;
        b >>= 1;
    }
    return ret;
}
int main(){
    int n;
    cin >> n;
    ll res = 1;
    ll a,b;
    for(int i=1;i<=n;i++){
        cin >> a >>b;
        ll r = (b-a+p)%p;
        res = (res*r %p* pow_mod(b,p-2,p) )%p; //轉化成 r* b 的p-2次方
    }
    cout << (1 - res +p )%p;
}

 

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