67std::int64_t
binExpo(std::int64_t a, std::int64_t b, std::int64_t m) {
90 for (std::int64_t i = 2; i * i <= m; i++) {
std::int64_t binExpo(std::int64_t a, std::int64_t b, std::int64_t m)
Calculate exponent with modulo using binary exponentiation in time.
static void test()
Self-test implementation.
bool isPrime(std::int64_t m)
Check if an integer is a prime number in time.
std::int64_t modular_inverse(std::int64_t a, std::int64_t m)
calculates the modular inverse.
Calculate modular inverse using Fermat's Little Theorem.