问题的链接: https://www.hackerearth.com/problem/algorithm/rhezo-and-big-power/description/ 我看到了这个人计算A%M的最佳提交(就像我们在纸上做的那样)和B%(M-1);然后这两个进入整数范围,他做log(n)方法找到m ^ n%M? 我无法理解为什么他会做B%(M-1)。
答案 0 :(得分:2)
根据费马的小定理,
a^(p-1) mod p = 1, When p is prime.
由此,在问题中,M是素数,我们可以表达A ^ B mod M如下,
A^B mod M = ( A^(M-1) * A^(M-1) *.......* A^(M-1) * A^(x) ) mod M
x is B mod M-1 and A ^ (M-1) continues B/(M-1) times
现在,根据费马的小定理,A ^ (M-1) mod M = 1.
因此,
A^B mod M = ( 1 * 1 * ....... * 1 * A^(x) ) mod M
这就是为什么我们使用M-1
来模拟B.