【发布时间】:2014-01-04 04:59:10
【问题描述】:
(10^{17}-1)*(10^{17}-1) mod 10^{18}
我正在解决一个编程问题,我将整数保存在 64 位长整数中。以上是我无法解决的特殊情况。 (ab)mod m = (a mod m)(b mod m) mod m, 在这里不成立,因为 (a mod m)(b mod m) 仍然会溢出 64 位整数。我该如何解决这个问题?我仅以 17 次方为例。这个问题甚至适用于 (10^{10}, 10^{18}-1) 范围内的所有整数。
编辑:我正在使用 C++ 来解决这个问题。这个问题可以在不使用处理大整数的库的情况下解决。
【问题讨论】:
-
看起来您可能需要使用库:stackoverflow.com/questions/117429/handling-large-numbers-in-c,除非您想体验自己编写一个库。
-
stackoverflow.com/questions/14857702/… 的可能重复项(已接受答案)。
-
您说指数中的
17只是一个例子。您是否需要针对这种特定的表达式结构或一般来说针对大整数 mod 运算的解决方案?