题目大意:
求 a 的 b 次方对 p 取模的值。
考察知识点
快速幂,位运算
思路
观察b的二进制数
例如:
3 5 4
5 = 101
3^1 = 3
3^2 = 9
3^4 = 81
则3^5 = 3^1 * 3^4
#include<iostream>
using namespace std;
int main()
{
long long a,b,p;
cin>>a>>b>>p;
long long res = 1 % p;
while(b)
{
if(b&1)
{
res = res * a % p;
}
a = a * a % p;
b >>= 1;
}
cout<<res;
return 0;
}