快速幂

题目背景:

nmn^m modmod kk (m231)(m \le 2^{31})

完整代码:

#include <iostream>//cin cout 
using namespace std;//命名空间
long long n, m, k;
long long ksm(long long n, long long m, long long k)
{
	long long ans = 1;
	while(m){
		if(m & 1) ans = ((ans % k) * (n % k)) % k;//同余定理
		n = ((n % k) * (n % k)) % k;
		m >>= 1;
	}
	return ans;
}
int main()//主函数
{
	cin >> n >> m >> k;
	cout << ksm(n, m, k);
	return 0;//华丽结束
}