关于模运算的该等式是否成立?((((((((a%n)*a)%n)*a)%n)*a)%n)*a)%n==(a*a*a*a*a)%n,该如何解决

关于模运算的该等式是否成立?((((((((a%n)*a)%n)*a)%n)*a)%n)*a)%n==(a*a*a*a*a)%n
看运用费马小定理判断素数的代码时看到的,递归的每一层都直接模n了,而不是求a的n次方后再模n

谢谢!

------解决方案--------------------
因为可能出现溢出,连续乘,但是结果是相同的。
------解决方案--------------------
1楼说的很对,你的等式在数学上是成立的,但是在计算机上就有问题:

比如对无符号2字节数类型来说,65535 开根号是255。也就是说你让256*256就会溢出(65536),结果会变成0。


但是如果你要计算a^4 mod 100,显然就可以扩大能应用2字节数据进行运算的数的范围。

------解决方案--------------------
没错,你每次mod n,那么不就是相当于缩小了a的范围么。比如a是256,256模13一下就变成0到12内的数了,效果明显
------解决方案--------------------
探讨

因为可能出现溢出,连续乘,但是结果是相同的。