#include<bits/stdc++.h>
#include <iostream>
using namespace std;
//快速幂||取模运算
//(a*b)%c=((a%c)*(b%c))%c
//快速幂相当于逆运算,指数除以2,就对原来的数进行平方
//(A×B)mod b=((A mod b)×(B mod b))mod b
typedef long long ll;//把long long改名为ll
ll fast_power(ll a,ll b,ll c)
{
ll ans=1;
while(b)
{
//如果当前指数是奇数,就先多乘一次原来的数
if(b&1)//b%2==1
{
ans=(ans*a)%c;
}
a=(a*a)%c;
b>>=1;//相当于b/2
}
return ans;
}
int main()
{
ll a,b,c;
cin>>a>>b>>c;
cout << a << "^" << b << " " << "mod" << " " << c << "=" << fast_power(a,b,c) ;
return 0;
}
P1226 快速幂||取余运算
最新推荐文章于 2024-08-15 05:02:54 发布