int myPow(int a, int b, int p)
{
//求解a的b次方,结果对p取余
long long res = 1 % p;
while (b)
{
if (b & 1)res = (long long)res*a%p;
a = a*a%p;
b = b >> 1;
}
return res;
}
int myMultiply(int a, int b, int p)
{
//求解a*b,结果对p取余
long long res = 0 % p;
int cnt = 0;
while (b)
{
if (b & 1)res = (long long)(res+a*pow(2,cnt))%p;
cnt++;
b = b >> 1;
}
return res;
}
利用二进制计算原理