模板 - 數論

Jerrycyx發表於2024-10-02

快速冪

遞迴

long long quick_pow(long long x,long long y,long long p)
{
	long long tmp=quick_pow(x,y>>1,p);
	tmp=tmp*tmp%p;
	if(y&1) return tmp*x%p;
	else return tmp;
}

迭代

long long quick_pow(long long x,long long y,long long p)
{
	long long res=1;
	while(y)
	{
		if(y&1) res=res*x%p;
		x=x*x%p;
		y>>=1;
	}
	return res;
}

相關文章