您的位置:首页 > 其它

快速幂

2016-04-14 13:21 344 查看
快速幂:

int pow(int a,int n)
{
int rs=1;
while(n)
{
    if(n&1)
      rs=rs*a;
    a=a*a;
    n=n>>1;
  }
  return rs;

}


快速幂取余:

//求a^b%n,O(logb)
__int64 get_mi_mod(__int64 a,__int64 b,int n)
{
if(0 == a)
return 0;
if(0 == b)
return 1;
__int64 rs=1;
while(b)
{
if(b&1)
rs=(rs*a)%n;
a=(a*a)%n;
b>>=1;
}
return rs;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: