解法
据说是……欧拉定理降幂+快速幂
一个重要的同余式是——
对于整数m,它的欧拉函数值为,就是从1到m里和m互质的整数的数量
当对m取余时,和得到的余数相等,即
降完之后就可以直接用快速幂
class Solution(object):
def superPow(self, a, b):
"""
:type a: int
:type b: List[int]
:rtype: int
"""
MOD = 1337
EULER = 1140
exp = 0
for bb in b:
exp = (exp*10+bb)%EULER
exp += EULER
ans = 1
while exp:
a %= MOD
if exp&1:
ans = ans*a%MOD
a=a*a
exp = exp>>1
return ans