年后第一题。
没什么好说的, 这题的全部代码以后就是函数一样的存在。
#include<bits/stdc++.h>
using namespace std;
long long qpow(long long a, long long b, long long p)
{
long long res = 1;
for( ;b; b >>= 1, a = (a*a) % p)
if(b&1) res = (res * a) % p;
return res % p;
//注意这个函数的理论基础
// 1. 二进制分解, 速度基础
// 2. 取膜下乘法加法的相关性质, 正确性基础
}
int main()
{
long long a, b, p;
cin >> a >> b >> p;
cout << qpow(a, b, p) ;
return 0;
}