Есть ли способ для сборки, например. (853467 * 21660421200929) % 100000000000007
без библиотек BigInteger (обратите внимание, что каждый номер соответствует 64-битовому целому числу, но результат умножения не соответствует)?
Это решение кажется неэффективным:
int64_t mulmod(int64_t a, int64_t b, int64_t m) {
if (b < a)
std::swap(a, b);
int64_t res = 0;
for (int64_t i = 0; i < a; i++) {
res += b;
res %= m;
}
return res;
}