This documentation is automatically generated by online-judge-tools/verification-helper
View the Project on GitHub ei1333/library
#include "math/combinatorics/mod-pow.hpp"
ある値のべき乗を求める.
mod_pow(x, n, p)
/** * @brief Mod Pow(べき乗) * @docs docs/mod-pow.md */ template< typename T > T mod_pow(T x, int64_t n, const T &p) { T ret = 1; while(n > 0) { if(n & 1) (ret *= x) %= p; (x *= x) %= p; n >>= 1; } return ret % p; }
#line 1 "math/combinatorics/mod-pow.hpp" /** * @brief Mod Pow(べき乗) * @docs docs/mod-pow.md */ template< typename T > T mod_pow(T x, int64_t n, const T &p) { T ret = 1; while(n > 0) { if(n & 1) (ret *= x) %= p; (x *= x) %= p; n >>= 1; } return ret % p; }