看的別人的文章,在此做個模板,上代碼:
__int64 quickpow(__int64 x, __int64 n)
{
__int64 b = 1;
while(n > 0)
{
if(n & 1)
b *= x;
n >>= 1;
x *= x;
}
return b;
}
如果需要求對m取模,那麼在while循環中每次對b和x取模即可
參考:http://blog.csdn.net/xiahouzuoxin/article/details/8033256