結果
問題 |
No.167 N^M mod 10
|
ユーザー |
![]() |
提出日時 | 2025-03-20 18:42:24 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 39 ms / 1,000 ms |
コード長 | 1,021 bytes |
コンパイル時間 | 151 ms |
コンパイル使用メモリ | 82,484 KB |
実行使用メモリ | 54,152 KB |
最終ジャッジ日時 | 2025-03-20 18:42:37 |
合計ジャッジ時間 | 2,040 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 27 |
ソースコード
def mod_of_large_number(m_str, T): if T == 4: if len(m_str) >= 2: last_part = m_str[-2:] else: last_part = m_str num = int(last_part) return num % 4 elif T == 2: last_digit = m_str[-1] return int(last_digit) % 2 else: return 0 # This case shouldn't occur as per our problem constraints n = input().strip() m = input().strip() if not n or not m: print(1) exit() d = int(n[-1]) if m == '0': print(1) else: if d == 0: print(0) elif d == 1: print(1) elif d == 5: print(5) elif d == 6: print(6) else: if d in {2, 3, 7, 8}: T = 4 mod_val = mod_of_large_number(m, T) exponent = mod_val if mod_val != 0 else T elif d in {4, 9}: T = 2 mod_val = mod_of_large_number(m, T) exponent = mod_val if mod_val != 0 else T result = pow(d, exponent, 10) print(result)