1.递归法
typedef long long LL;
LL p;
LL power(LL a, LL n) {
LL ans;
if (n == 0)
ans = 1;
else {
ans = power(a * a %p, n / 2);
if (n & 1)
a = a * a % p;
}
return ans%p;
}
2.分治法
typedef long long LL;
LL p;
LL power(LL a, LL n) {
LL ans=1;
while (n > 0) {
if (n & 1)
ans = ans * a % p;
a = a * a % p;
n >>= 1;
}
return ans % p;
}