結果
| 問題 |
No.167 N^M mod 10
|
| コンテスト | |
| ユーザー |
lam6er
|
| 提出日時 | 2025-03-20 20:22:47 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 39 ms / 1,000 ms |
| コード長 | 1,021 bytes |
| コンパイル時間 | 291 ms |
| コンパイル使用メモリ | 82,292 KB |
| 実行使用メモリ | 54,096 KB |
| 最終ジャッジ日時 | 2025-03-20 20:24:48 |
| 合計ジャッジ時間 | 2,147 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| 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)
lam6er