快速幂算法(取模)

阅读量: 195 编辑

快速幂算法

// 爱码岛编程
long long fast_pow(long long a, long long b) {
    long long result = 1;
    while (b) {
        if (b & 1) // b % 2 == 1
            result = (result * a);
        a = a * a;
        b >>= 1;
    }
    return result;
}

快速幂算法取模 a^b % p

// 爱码岛编程
long long pow_mod(long long a, long long b, long long p) {
    long long result = 1;
    a %= p;
    while (b) {
        if (b & 1) // b % 2 == 1
            result = (result * a) % p;
        a = a * a % p;
        b >>= 1;
    }
    return result;
}
爱码岛编程公众号
试卷资料
爱码岛编程小程序
在线刷题
苏ICP备13052010号
©2023 南京匠成信息科技有限公司