用于求 a^b%c,防止数据过大而溢出
int _Montgomery(int a,int b,int c)
{
int ans=1;
a=a%c;
while(b>0)
{
if(b&1)ans=(ans*a)%c;
b=b>>1;
a=(a*a)%c;
}
return ans;
}时间复杂度为O(log2b)
本文介绍了一种快速计算a^b%c的有效算法——快速幂取模,并提供了具体实现代码。该算法采用位运算来减少乘法操作次数,有效避免了因中间结果过大而导致的数据溢出问题,时间复杂度为O(log2b)。
用于求 a^b%c,防止数据过大而溢出
int _Montgomery(int a,int b,int c)
{
int ans=1;
a=a%c;
while(b>0)
{
if(b&1)ans=(ans*a)%c;
b=b>>1;
a=(a*a)%c;
}
return ans;
}
451

被折叠的 条评论
为什么被折叠?