結果

問題 No.167 N^M mod 10
ユーザー lam6er
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #

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)
0