进阶指南的第二题
快速幂算法思想的应用。
既然乘方可以通过快速地计算几个数相乘地形式得到,那么乘法是不是也可以由几个数相加得到?
答案是肯定的。

#include<cstdio>
#include<iostream>
using namespace std;
typedef long long ll;
ll a,b,p;
int main(){
    cin>>a>>b>>p;
    ll ans;
    while (b){
        if (b&1) ans=(a+ans)%p;
        a=(a+a)%p;
        b>>=1;
    }
    cout<<ans;
}