本题可以找规律,但这里采用欧拉降幂的做法:
欧拉降幂的前置知识是欧拉函数
简单来说欧拉降幂其实就是一个公式
表示同余,
表示p的欧拉函数
大数交给Python
def phi(x):
if x == 10:
return 4
if x == 4:
return 2
if x == 2:
return 1
if x == 1:
return 1
def cal(a, n, mod):
if (mod == 1):
return 1
if n == 1:
return a % mod + mod
return pow(a, cal(a, n - 1, phi(mod)), mod) + mod
a = int(input())
n = int(input())
if (n == 1):
print(a % 10)
else:
print(pow(a, cal(a, n - 1, phi(10)), 10))
下面这种做法则是直接找出循环节
a = int(input())
n = int(input())
if (n == 1): print(a % 10) # n==1 直接输出个位数
elif (n == 2): print(pow(a % 10, a, 10)) # n==2 直接快速幂算
else:
e = pow(a % 4, a % 2 + 2, 4)
print(pow(a % 10, e + 4, 10)) 
京公网安备 11010502036488号