两种求幂函数取模的方法

一、快速幂

int quickM(long long x, long long p, int mod) {
	x %= mod;
	LL ans = 1;
	while (p) {
		if (p % 2 == 1)
			ans = ans * x % mod;
		x = x * x % mod;
		p /= 2;
	}
	return ans;
}

 二、二分法

int pow_mod(int a,int n,int mod){
	if(n==0){
		return 1;
	}
	int x=pow_mod(a,n/2,mod);
	long long ans=(long long)x*x%mod;
	if(n%2==1){
		ans=ans*a%mod;
	}
	return (int)ans;
}

  

posted on 2018-08-15 14:59  Diiiven  阅读(298)  评论(0)    收藏  举报

导航