結果
問題 | No.181 A↑↑N mod M |
ユーザー |
![]() |
提出日時 | 2025-04-15 21:40:40 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 933 bytes |
コンパイル時間 | 355 ms |
コンパイル使用メモリ | 82,104 KB |
実行使用メモリ | 54,416 KB |
最終ジャッジ日時 | 2025-04-15 21:43:01 |
合計ジャッジ時間 | 3,395 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 6 |
other | AC * 27 WA * 10 |
ソースコード
def main(): import sys A, N, M = map(int, sys.stdin.readline().split()) if M == 1: print(0) return if N == 0: print(1 % M) return def euler_phi(m): if m == 0: return 0 res = m i = 2 while i * i <= m: if m % i == 0: while m % i == 0: m //= i res -= res // i i += 1 if m > 1: res -= res // m return res def compute(A, n, m): if m == 1: return 0 if n == 0: return 1 % m if n == 1: return A % m phi = euler_phi(m) e = compute(A, n-1, phi) if e == 0 and phi == 0: return 0 if e >= phi: e += phi return pow(A, e, m) print(compute(A, N, M)) if __name__ == "__main__": main()