我想计算三个整数A,B(小于10^12)和C(小于10^15)的(A * B) % C。 我知道:
(A * B) % C = ((A % C) * (B % C)) % C
但是如果A = B = 10^11,那么上面的表达式将导致整数溢出。对于上述情况是否有简单的解决方案,还是我必须使用快速乘法算法。
如果我必须使用快速乘法算法,那么我应该使用哪个算法。
编辑:我在C ++中尝试了以上问题(没有引起溢出,不确定为什么),但答案不应该是零吗?
先行致谢。
0
时,实际上却看到了712049423024128
,此时您才会意识到该问题。 - Bernhard Barker