Friday, November 2, 2012

Big Mod


#include <iostream>
#include <cstdio>
using namespace std;
typedef long long ll;

ll square(ll x){
    return x*x;
}

ll bigmod(ll b, ll p, ll m){
    if(p==0) return 1;
    else if(p%2==0) return square(bigmod(b,p/2,m))%m;
    else return ((b%m)*bigmod(b,p-1,m))%m;
}

int main()
{
    ll b,p,m;
    while(cin>>b>>p>>m){
        cout<<bigmod(b,p,m)<<endl;
    }
    return 0;
}


No comments:

Post a Comment