解题思路:由于效率问题,每做一次乘机求一次余数会不过。可以将底数成倍增长求余数。
源码附上:
#include <iostream>
using namespace std;
int main()
{
long long A,B,C;
cin>>A>>B>>C;
A%=C;
long long ans=1;
while(B>0)
{
if(B%2==1)
{
ans*=A;
}
B/=2;
A=(A*A)%C;
}
cout<<ans<<endl;
return 0;
}