欧拉降幂,快速幂模板

本文介绍了在处理大指数运算时如何利用欧拉函数和快速幂模板来优化计算。当b较大可能导致溢出时,需要先通过欧拉函数降低b的值,再进行快速幂运算。同时,给出了欧拉函数的模拟过程,并提供了一个求解a^b%c的例题。
摘要由CSDN通过智能技术生成
 **求a^b%p**

如果不理解快速幂板子请看大佬的理解

1.b不是很大,直接用快速幂板子来写即可

**快速幂板子**
ll quickpow(ll x,ll y ll z)
{
   //x^y%z
	ll ans=1;
	while(y)
	{
   
		if(y&1)
			ans=ans*x%z;
		x=x*x%z;
		y>>=1;
	}
	return ans;
}

2.b很大,long long都存不下,就不能直接快速幂了,首先必须让b变小,需要对b取模,但不能直接让b对p取模,这里需对p运用欧拉函数板子改变p的值得rea,然后(b%rea+rea),从而缩小b的值,想要了解为什么,找一些大佬对欧拉函数的详解吧。这里说一下b一般存的是字符串,因此可以一位一位的进行取模,最终改变b的值。b的值缩小之后再次使用快速幂进行求解

       a^b%c==a^(b%rea+rea)%c,其中rea为c的欧拉函数
**欧拉函数
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值