题目表述:
算法思想:
数值过于巨大,无法快速进行幂计算,核心思想是进行降幂。可数学优化:通过欧拉—费马降幂。a^b%c == a^(b%phi(c))%c phi(c) 是欧拉函数表述小于c和c互质的数的个数 本题给定的c = 1337 可提前算出phi(c) = 1140 然后根据公式计算返回答案即可
代码详情:
class Solution:
def superPow(self, a: int, b: List[int]) -> int:
res = 1
c = 1337
sum = 0
for i in range(0,len(b)):
sum = sum*10 + b[i]
phi = 1140
res = pow(a,sum%phi) %c
return res
运行结果详情:
tips:第一次记录博客,略显粗糙,代码功底浅薄正在学习,希望大家一起进步。