我正在编写一个使用连续平方来求解 a^k mod m 的算法。由于连续平方的工作方式,算法必须计算的最大数字是 2147483646^2(我将用户输入限制为 214738364)。不幸的是,它仍然需要计算这个。它似乎正确地得到了平方部分,然后将溢出的数字转换为浮点数,但随后无法计算浮点数和整数的模数。
示例行是:
3422422^2 mod 715924 = 661224^2 mod 715924 = 437217178176 mod 715924 = -354280
我该如何解决这个问题,以及如何在 PHP 中找到解决整数溢出的方法?