フェルマーの小定理
ABC
E
MOD
ABC228 E - Integer Sequence Fair
https://atcoder.jp/contests/abc228/tasks/abc228_e (opens in a new tab)
水色上位。MOD。
フェルマーの小定理は逆元の計算にのみ利用されるかと思ったが、今回のように累乗計算を高速化するのにも利用される。
まず解は であるが、 は成り立たない。
そこでフェルマーの小定理 を利用する。 により、 を で割ったあまりを考えると、
が成り立ち、 を高速に計算できる。
累乗計算では、 が で割り切れる時解は になるので注意すること。
MOD = 998244353
n, k, m = map(int, input().split())
if m % MOD:
r = pow(k, n, MOD - 1)
print(pow(m, r, MOD))
else:
print(0)