Description
Format
Input
输入N,K,M
Output
输出M^K^N%p的结果
p=998244353
附源码:
#include <iostream>
using namespace std;
const long long p = 998244353;
// 快速幂算法计算 (base^exp) % mod
long long modPow(long long base, long long exp, long long mod) {
long long result = 1;
base = base % mod;
while (exp > 0) {
if (exp % 2 == 1)
result = (result * base) % mod;
exp = exp >> 1;//右移位运算,右移一位的效果等同于将原数除以2并取整
base = (base * base) % mod;
}
return result;
}
long long modPowKN(long long M, long long K, long long N, long long p) {
if (M % p == 0)
return 0; //费马小定理要求底数不与模数互质,否则定理不成立
return modPow(M, modPow(K, N, p - 1), p);
}
int main() {
long long N, K, M;
cin >> N >> K >> M ;
cout << modPowKN(M, K, N, p) << endl;
return 0;
}
第3个100分通过!