可以暴力法直接循环乘多少次O(n)
下边是学的大佬的做法O(logn)
大家肯定都理解 不管是暴力还是下边这种做法都是需要多少次方也就是循环次数
下边的做法其实可以看作是暴力的优化,
还有就是加了循环读入,笔试应该会这么要求
如有错误还请批评指针
#include <iostream>
using namespace std;
#define ll long long
ll power(ll m, ll n, ll k)
{
ll ans = 1 % k;
while (n)
{
if (n & 1) ans = ans * m % k;//判断n是不是奇数
m = m * m % k;//抵消下取整的一次或者说是抵消偶数没有相乘的一次
n >>= 1;//除2下取整
}
return ans;
}
int main()
{
ll a, b, c;
while (cin >> a >> b >> c)
{
a %= c;
ll res = power(a, b, c);
cout << res % c << endl;
}
return 0;
}