快速幂

由于数的结合律,$a^{2x}=(a^x)^2$,$a^{2x+1}=(a^x)^2 \times a$,可以使用倍增法快速求解。

ll qpow(ll a,int x,ll P){
	if(x==0)return 1%P;
	ll ans=1;
	while(x){
		if(x&1)ans=ans*a%P;
		a=a*a%P;
		x>>=1;
	}
	return ans;
}

例题

名称 编号 备注 题解