高次幂取模

来源:互联网 发布:帝国cms首页模板修改 编辑:程序博客网 时间:2024/06/06 03:35
位运算非递归
int modular_exponent(int a,int b,int n){ int ret=1; for (;b;b>>=1,a=a*a%n)  if (b&1)   ret=ret*a%n; return ret;}


递归

long exp_mod(long a,long n,long b){    long t;    if (n==0) return 1%b;    if (n==1) return a%b;    t=exp_mod(a,n/2,b);    t=t*t%b;    if (n&1==1) t=t*a%b;    return t;}