快速幂取模算法

相关的数学原理直接链接

直接上一个模板代码

ll cal(int x,ll y,int mod) //计算和返回 y的x次方 % mod 的结果值
{
	ll re=1; //结果值初始化
	while(x) //分析次幂 x 的每一个二进制位
	{
		if(x&1) re=(re*y)%mod; //若当前位为 1,则累乘当前位的权并取模
		x>>=1;
        y=(y*y)%mod; //次幂 x 右移一位,计算该位的权后取模
	}
	return re; //返回结果值
}

OK

posted @ 2020-07-31 20:14  SavenNeer  阅读(101)  评论(0编辑  收藏  举报