모든 사람들은 이런 종류의 알고리즘의 전제가 비트 연산을위한 약간의 기초가 있어야한다는 것을 이해하고 동시에 다음 규칙을 알고 있습니다.
(a b) % m = (a % m) (b % m)
알고리즘 아이디어는 다음과 같습니다. 전력을 줄이기 위해, 예를 들어 : 3 ^ 4 = 3 ^ 2 * 3 ^ 2
def binaryPow(a,b,m):
ans=1#当a的幂b为奇数时为了将b变为偶数而存在
while b>0:#只要b存在
if b&1==1:#位运算等同于为奇数时
ans=ans*a%m#将奇数变偶数去掉的a给乘上同时也要%m因为最后b肯定为1所以结果也从这里得到
a=a*a%m#为偶数时a的平方
b>>=1#因为上一步所以要将b除2(等同b除2)
return ans
a,b,m=(int(i) for i in input().split(' '))
print(binaryPow(a,b,m))
튜토리얼 링크를 준비하는 것이 좋습니다.이 비디오를 시청하지 못할 수도 있습니다. 비디오