题目链接:
点击打开链接
五个数据abcde就是求(a * b)^ (c * d) % e;
我卡98%的样例了,因为我一开始取模时候把四个数据都取模了,但是这样可能会把次方数模出问题,比如模成0或者什么什么的。反正只模底就好了。
#include
using namespace std;
typedef long long ll;
const double eps = 1e-8;
#define INF 100000000
typedef pair P;
#define N 100001
const double e = exp(1.0);
ll mod;
ll power(ll a, ll b)
{
if(b == 0)
return 0;
ll ans = 1;
a %= mod;
while(b){
if(b & 1)
ans = (ans * a) % mod;
a = (a * a) % mod;
b >>= 1;
}
return ans;
}
int main()
{
ll a, b, c, d;
cin >> a >> b >> c >> d >> mod;
a %= mod;
b %= mod;
// c %= mod;
// d %= mod;
printf("%lld", power(a * b, c * d));
return 0;
}