首页 > 其他 > 详细

快速幂

时间:2019-04-04 22:12:48      阅读:111      评论:0      收藏:0      [点我收藏+]

快速幂

a^b%p

(操作一)

int quickpow(int a,int b,int n)
{
    int ans=1;

    while(b)
    {
        if(b%2==1)
        ans=ans*a%n;
        a=a*a%n;
        b/=2;
    }

    return ans;
}

 

 

(分治)

比如求3^5

也就是由3^2 , (3^2)^2 , 最后(3^2)^2*2

得来

int calc(int a,int b,int c)
{
    if(b==1)  return a;

    int tmp=calc(a,b/2,c);

    tmp=tmp*tmp%c;

    if(b%2==1)  tmp=tmp*a%c;

    return tmp;
 } 

 

快速幂

原文:https://www.cnblogs.com/xiaoyezi-wink/p/10656921.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!