Home / list of functions / fwnbi::modpow
template <size_t B, class D>
constexpr basic_integer<B, D, false> modpow(
    const basic_integer<B, D, false>& base,
    const basic_integer<B, D, false>& exponent,
    const basic_integer<B, D, false>& modulo
) noexcept;
constexpr since C++14

Calculates modular exponentiation.

Example
#include "fwnbi.hpp"
#include <iostream>

using namespace fwnbi::literals;

int main() {
    std::cout << "23^20 mod 29 = " << fwnbi::modpow(
        23_ull128, 20_ull128, 29_ull128
    ) << '\n';
}
Output
23^20 mod 29 = 24