1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# 372. Super Pow
from functools import reduce
"""
your task is to calculate `a^b % 1337` where 'a' is a positive integer and
'b' is an extremely large positive integer given in the form of an array
"""
class Solution(object):
def superPow(self, a, b):
"""
:type a: int
:type b: List[int]
:rtype: int
"""
return (
0
if a % 1337 == 0
else pow(a, reduce(lambda x, y: (x * 10 + y) % 1140, b) + 1140, 1337)
)
if __name__ == "__main__":
obj = Solution()
print(obj.superPow(a=2, b=[3]))
print(obj.superPow(a=2, b=[1, 0]))
print(obj.superPow(a=1, b=[4, 3, 3, 8, 5, 2]))
|