快速幂

Code1

int ksm(int a,int b,int p)
{
	int x=1;
	a%=p;
	while (b)
	{
		b>>=1;
		a=a*a%p;
		if (b&1) x=x*a%p;
	}
	return x;
}

Code2 蒙哥马利快速幂

long long mgml(long long a,long long b,long long c)
{
	long long ans=1;
	a = a%c;
	while (b > 0)
	{
		if (b&1) ans = (ans*a)%c;
		b = b >> 1;
		a = (a*a)%c;
	}
	return ans;
}

写法2

long long ksm(long long x,long long y)
{
	long long cnt=1;
	while (y)
	{
		if (y&1) cnt=(cnt*x)%mo;
		x=(x*x)%mo;
		y>>=1;
	}
	return cnt;
}
posted @ 2026-03-24 11:49  msjing  阅读(8)  评论(0)    收藏  举报