#include
#define ll long long
using namespace std;
/64位:1e18
ab%m;
方法一:/
ll mul1(ll a,ll b,ll m)
{
ll ans=0;
for(; b; b>>=1)
{
if(b&1)
ans=(ans+a)%m;
a=a2%m;
}
return ans;
}
/方法二/
ll mul2(ll a,ll b,ll m)
{
a=a%m;
b=b%m;
ll ans=(long double)ab/m;
ll res=ab-ans*m;
while(res<0)
res+=a;
while(res>=m)
res-=m;
return res;
}
/32位整数:/
ll quickmod(ll a,ll b,ll m)
{
ll ans=1%m;
for(; b; b>>=1)
{
if(b&1)
ans=(ll)mul1(ans,a,m)%m;
a=(ll)mul1(a,a,m)%m;
}
return ans;
}
快速幂模板
最新推荐文章于 2024-07-25 06:55:26 发布