找到大数的模数平方

时间:2014-03-18 23:43:00

标签: integer modulo

我目前正在编写一个需要计算的程序:

(x ^ 2)mod y

这两个数字都是整数。两者都可以是大数字,但它们永远不会超过10 ^ 9。

对于x平方,这仍然足以溢出整数。速度对于此代码至关重要,因此逐渐乘法不可用。

谢谢。

2 个答案:

答案 0 :(得分:0)

您可以从this post

中获取参考

这应该是一个相对简单的例子。 4 ^ 23 = 2 ^ 46。现在,因为2 ^ 5 =32≡1(mod31),

2 ^ 46 =(2 ^ 5)9×2 = 32 ^ 9×2≡1×2≡2(mod31)

答案 1 :(得分:0)

解决方案非常简单。我使用Long,而不是int,它可以工作。