模板 - 数论

快速幂

递归

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;
}
posted @ 2024-10-02 17:23  Jerrycyx  阅读(7)  评论(0编辑  收藏  举报