快速乘:a*a=a+a+a·····+a(a个a相加),O(lgn/lg2)复杂度;
如果a比较大:a=a*a%m =》 a=(a%m)*(a%m)%m 有可能m比较大,最终爆LL,快速乘能够解决;
#include<cstdio>
typedef long long LL;
LL f(LL a,LL b,LL c)
{
LL k=0;
while(b)
{
if(b&1) k=(k+a)%c;
a=(a+a)%c;
b>>=1;
}
return k;
}
int main()
{
LL a,b,c;
while(scanf("%lld %lld %lld",&a,&b,&c)!=EOF)
{
a%=c;
b%=c;
printf("%lld\n",f(a,b,c));
}
return 0;
}