【发布时间】:2014-01-03 20:24:12
【问题描述】:
例如,A=10^17、B=10^17、C=10^18。
乘积 A*B 超过 long long int 的限制。
此外,写 ((A%C)*(B%C))%C 也无济于事。
【问题讨论】:
-
This question on MathOverflow 似乎相关
-
您可以应用数学来查找快捷方式,尽管这不一定会让您找到适合
long long int的数字(在这种情况下,我认为这不仅仅是因为结果可能是大至 10^18)。在这种情况下,您需要任意精度整数。对于像 10^18 这样的数字,显而易见的非最优算法应该足够了,无论基数如何,它都只有几十位数。
标签: c++ product long-integer modulo integer-arithmetic