C语言实现快速幂取模

算法复杂度:O(logn)

//快速幂
#include <stdio.h>
typedef long long ll; 
ll quick(int a,int b,int c)
{
    
    
	ll ans=1;
	a%=c; 
	
	while(b)
	{
    
    
		if(b&1)  ans=(ans*a)%c;	//如果b是奇数,则将ans乘以此时的底数 
		a=(a*a)%c;
		b>>=1;					//即b/=2 
	}
	printf("%d",ans);
	return ans;
}

int main()
{
    
    
	int a,b,c;
	scanf("%d%d%d",&a,&b,&c);
	quick(a,b,c);

	return 0;	
} 

在这里插入图片描述

参考视频:【C++/算法】快速幂算法详解

猜你喜欢

转载自blog.csdn.net/m0_51336041/article/details/121286108