
#include<iostream>
using namespace std;
int main()
{
long long a,b,p;
cin>>a>>b>>p;
long long res=0;
while(b)
{
if(b&1)res=(res+a)%p;//提前%p把结果控制在范围内,不影响答案,因为在传递中间可以无限%p;
a=(a+a)%p;//利(a*b)%p=(a+a...a)%p
b>>=1;
}
cout<<res;
return 0;
}
本文介绍了一种快速幂取模算法的C++实现方法,该算法通过位运算和循环来高效地计算大数的幂次方并取模,适用于需要进行大量计算且对效率有较高要求的场景。
401

被折叠的 条评论
为什么被折叠?



