AcWing 875. 快速幂

 

 

 

 

#include <iostream>
#include <algorithm>
using namespace std;
typedef long long LL;
LL qmi(int a, int k, int p) {
    LL res = 1 % p;
    while (k) {
        if (k & 1)//如果k的末尾是1
            res = res * a % p;
        a = a * (LL)a % p;//变成平方
        k >>= 1;//删除末尾
    }
    return res;
}
int main() {
    int n;
    scanf("%d", &n);
    while (n -- ) {
        int a, k, p;
        scanf("%d%d%d", &a, &k, &p);
        printf("%lld\n", qmi(a, k, p));
    }
    return 0;
}

 

 

posted @ 2019-11-15 01:02  晴屿  阅读(104)  评论(0编辑  收藏  举报