快速幂解法
本题就是快速幂的一个模板题。将b表示成二进制的写法,得到a*b的表达式即可
代码如下:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a, b, p;
ll mul()
{
ll ans = 0;
while (b)
{
if (b & 1) ans = (ans + a) % p;
a = a * 2 % p;
b >>= 1;
}
return ans;
}
int main()
{
scanf("%lld %lld %lld", &a, &b, &p);
printf("%lld", mul());
}