a^b(快速幂)

题目描述

求 a 的 b 次方对 p 取模的值,其中 1≤a,b,p≤10^9

输入

三个用空格隔开的整数a,b和p。

输出

一个整数,表示a^b mod p的值。

样例输入

2 3 9

样例输出

8
ll ksm(ll a, ll b, ll p) {
    ll ans = 1;
    while (b) {
        if (b % 2) {
            ans *= a;
            ans %= p;
        }
        a *= a;
        a %= p;
        b >>= 1;
    }
    return ans;
}
原文地址:https://www.cnblogs.com/nublity/p/9262069.html