【51nod】1046 A^B Mod C - 快速幂

1046 A^B Mod C

快速幂算法学习

#include <cstdio>
using namespace std;

long long PowerMod(long long a, long long b, long long c){
    long long ans = 1;
    a %= c;
    while(b){
        if(b&1){
            ans = (ans*a)%c;
        }
        b >>= 1;
        a = (a*a)%c;
    }
    return ans;
}

int main(){
    long long a, b, c;
    scanf("%lld %lld %lld", &a, &b, &c);
    printf("%lld", PowerMod(a, b, c));
    return 0;
}

猜你喜欢

转载自blog.csdn.net/Zy_Ming/article/details/82080048
今日推荐