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