首页 > 其他 > 详细

快速幂 与 取余运算

时间:2020-08-09 11:00:43      阅读:68      评论:0      收藏:0      [点我收藏+]
#include <bits/stdc++.h>
long long binaryPow(long long a,long long b,long long m){
	if(b == 0)	return 1;
	else if(b%2==1)	return a*binaryPow(a,b-1,m)%m;
	else
	{
		long long num = binaryPow(a, b/2, m) % m;	//优化 
		return num * num % m;
	}
	// 不直接写成return binaryPow(a, b/2, m) * binaryPow(a, b/2, m)
}
int main()
{
	long long b,p,k,c;
	std::scanf("%lld%lld%lld",&b,&p,&k);
	c=b;	b%=k;
	long long ans=binaryPow(b,p,k);
	std::printf("%lld^%lld mod %lld=%lld",c,p,k,ans%k);
	return 0;
}

快速幂 与 取余运算

原文:https://www.cnblogs.com/cyl-oi-miracle/p/13438052.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!