等比数列二分求模

来源:互联网 发布:ubuntu 列出所有用户 编辑:程序博客网 时间:2024/06/05 03:42
//等比数列二分求模int PowMod(int a,int b,int c){    int result=1;    int base=a%c;    while(b)    {        if(b&1) result=(result*base)%c;        base=(base*base)%c;        b=(b>>1);    }    return result;}int PowSumMod(int a,int n,int p){    if(n==1) return a%p;    if(n%2==0) return (1+PowMod(a,n/2,p))*(PowSumMod(a,n/2,p))%p;    else return ((1+PowMod(a,(n-1)/2,p))*(PowSumMod(a,(n-1)/2,p))+PowMod(a,n,p))%p;}

0 0