模幂运算

Posted darkchii

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模幂运算相关的知识,希望对你有一定的参考价值。

  https://en.wikipedia.org/wiki/Modular_exponentiation

  该算法在一些数论题中十分有用。算法用于快速求解同余方程 $ c = a^b mod M $ ,其中 a, b, M 已知。

  code:

#include <iostream>
#define ll long long
ll modexpo(ll base, ll expo, ll mod)
{
	if (mod == 1) return 0;
	ll res = 1; while (expo > 0)
	{
		if (expo & 1)	res = (res*base) % mod;
		base = (base*base) % mod; expo >>= 1;
	}
	return res;
}
int main()
{
	std::cout << modexpo(2,3,5) << std::endl;
	return 0;
}

  

  

以上是关于模幂运算的主要内容,如果未能解决你的问题,请参考以下文章

C++ 中高数的模幂运算

C++ 中高数的模幂运算

模幂运算问题,使用朴素算法和重复-平方算法(快速幂+C#计算程序运行时间)

模幂运算问题,使用朴素算法和重复-平方算法(快速幂+C#计算程序运行时间)

欧几里得算法解决 RR' - NN' = 1. 使用蒙哥马利算法进行模幂运算以在 python 或 Petite Chez 方案中实现费马检验

《夜深人静写算法》数论篇 - (13) 二分快速幂