算法复杂度:O(logn)
//快速幂
#include <stdio.h>
typedef long long ll;
ll quick(int a,int b,int c)
{
ll ans=1;
a%=c;
while(b)
{
if(b&1) ans=(ans*a)%c; //如果b是奇数,则将ans乘以此时的底数
a=(a*a)%c;
b>>=1; //即b/=2
}
printf("%d",ans);
return ans;
}
int main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
quick(a,b,c);
return 0;
}
参考视频:【C++/算法】快速幂算法详解