二分快速幂
计算a^b %c,当b很大的时候,就可以用二分将时间复杂度由O(n)降到O(logn)
#include<bits/stdc++.h>
using namespace std;
int Montgomery(int a,int b,int c)
{
int ans=1;
while(b)
{
if(b&1)ans=ans*a%c;
ans=ans*ans%c;
b=b>>1;
}
return ans;
}
int main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
int ans=Montgomery(a,b,c);
printf("%d",ans);
return 0;
}
来到例题