Я пишу алгоритм, который использует последовательный квадрат для решения ^ k мод m. Из-за того, как работает последовательное возведение в квадрат, максимальное число, которое алгоритму когда-либо придется вычислять, составляет 2147483646 ^ 2 (я ограничил вводимые пользователем данные 214738364). К сожалению, это все еще должно вычислить это. Кажется, что вы получаете правильную квадратную часть, а затем превращаете переполняемое число в число с плавающей точкой, но затем не можете вычислить модуль с плавающей точкой и целое число.
Пример строки:
3422422^2 mod 715924 = 661224^2 mod 715924 = 437217178176 mod 715924 = -354280
Как я могу это исправить и как найти способ обойти целочисленное переполнение в PHP?