一共有
class MainActivity:
def main(self):
# Read the data
q = int(input())
for _ in range(q):
a, b, p = map(int, filter(lambda x: len(x) > 0, input().split(' ')))
a %= p
result = self.__fastPower(a, b, p)
print(result)
def __fastPower(self, a, b, p):
# Initialization
bRp = bin(b)[2:][::-1]
result = 1
base = a
# Traverse
for digit in bRp:
if digit == '1':
result *= base
result %= p
base **= 2
base %= p
return result
if __name__ == '__main__':
M = MainActivity()
M.main() class MainActivity:
def main(self):
# Read the data
q = int(input())
records = dict()
for _ in range(q):
del records
records = dict()
a, b, p = map(int, filter(lambda x: len(x) > 0, input().split(' ')))
a %= p
result = self.__fastPower(a, b, p, records)
print(result)
def __fastPower(self, a, b, p, records):
if not b:
return 1
if b == 1:
return a
halfB = b // 2
if (a, halfB) in records:
leftResult = records[(a, halfB)]
else:
leftResult = self.__fastPower(a, halfB, p, records)
records[(a, halfB)] = leftResult
if (a, b - halfB) in records:
rightResult = records[(a, b - halfB)]
else:
rightResult = self.__fastPower(a, b - halfB, p, records)
records[(a, b - halfB)] = rightResult
finalResult = (leftResult % p) * (rightResult % p) % p
return finalResult
if __name__ == '__main__':
M = MainActivity()
M.main()