快速幂【史上最详细最简单讲解快速幂】 利用二进制来理解一下快速幂 比如我要求一个数a的13次方,13用二进制数表示为: 0b1101 那么是不是就意味着最终的结果是a的1(1101的最右边)次方乘上a的4次方再乘上a的8次方,即: a13=a1 a4 a8 那么我们将13一直右移就能检查到哪个位置是1,如果是1则需要乘上a的这么多次方。 def qpow(x,y): ans = 1 base = x while y: if y & 1: ans = ans * base % n base = base * base % n y //= 2 return ans