11 = (1011)2;
a*11 = a*2^3*1 + a*2^2*0 + a*2^1*1 + a*2^0*1
a与b的和除以c的余数(a、b两数除以c在没有余数的情况下除外),等于a,b分别除以c的余数之和(或这个和除以c的余数)
#include<iostream>
using namespace std;
typedef unsigned long long ull;
int main()
{
ull a,b,p;
scanf("%llu %llu %llu",&a,&b,&p);
ull res = 0;
while(b)
{
if(b&1) res = (res+a)%p;
a= a*2%p;
b>>=1;
}
printf("%llu",res);
return 0;
}