Wednesday, July 2, 2014

UVa - 374 - Big Mod

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
long long b_mod(long long b, long long p, long long m){
    if(p == 0)return 1;
    if(p % 2 == 0)
        return ((b_mod(b, p / 2, m)) * (b_mod(b, p / 2, m))) % m;
    else
        return ((b % m) * b_mod(b, p - 1, m)) % m;
}
int main(){
    long long b, p, m;
    while(cin >> b >> p >> m){
        long long result = b_mod(b, p, m);
        cout << result << endl;
    }
    return 0;
}

No comments:

Post a Comment