1. 程式人生 > >快速冪運算

快速冪運算


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

LL fast_pow(LL x,LL n,LL m)
{
    LL result=1;
    while(n>0)
    {
        if(n&1)
            result=(result*x)%m;
        x=(x*x)%m;
        n>>=1;
    }
    return result;
}

int main()
{
    LL x,n,m;
    scanf("%lld%lld%lld",&x,&n,&m);
    printf("%lld\n",fast_pow(x,n,m));

    return 0;
}