快速幂求逆元


快速幂求逆元:

#include 
#include 
using namespace std;
typedef long long LL;
int n;

LL qmi(int a, int b, int p)
{
    LL ans = 1;
    while(b)
    {
        if(b&1) ans = (LL)ans * a % p;
        b >>= 1;
        a = (LL)a * a % p;
    }
    
    return ans;
}
int main()
{
    cin >> n;
    while(n--)
    {
        int a, p;
        cin >> a >> p;
        LL ans = qmi(a, p - 2, p);
        if(a % p == 0) puts("impossible");
        else cout << ans << endl;
    }
    
    return 0;
}