64位整数的乘法,还是前面一道题的思想,书上还有一种解法没有看,
#include <bits/stdc++.h>
#define fi first
#define se second
#define pb push_back
#define all(x) (x).begin(), (x).end()
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef pair<int, int> pa;
ll solve(ll a, ll b, ll p) {
ll ans = 0;
while (b) {
if (b & 1) ans = (ans + a) % p;
a = a * 2 % p;
b >>= 1;
}
return ans;
}
int main() {
ll a, b, p;
cin >> a >> b >> p;
cout << solve(a, b, p);
return 0;
}