题解:P10446 64位整数乘法
我们使用了一个循环来计算
#include<bits/stdc++.h>
using namespace std;
long long mod(long long a, long long b, long long p) {//不开long long见祖宗!
long long result = 0;
a%=p;
while(b>0) {
if(b&1) {
result = (result + a) % p;
}
a=(a<<1)%p;
b>>=1;
}
return result;
}
int main() {
long long a, b, p;
cin >> a >> b >> p;
cout << mod(a, b, p) << endl;
return 0;
}