連続二乗を使用して a^k mod m を解決するアルゴリズムを作成しています。連続二乗が機能する方法のため、アルゴリズムが計算する必要がある最大数は 2147483646^2 です (ユーザー入力を 214738364 に制限しました)。残念ながら、これはまだ計算する必要があります。二乗部分を正しく取得したようで、オーバーフローした数値を浮動小数点数に変換しますが、浮動小数点数と整数のモジュラスを計算できません。
サンプル行は次のとおりです。
3422422^2 mod 715924 = 661224^2 mod 715924 = 437217178176 mod 715924 = -354280
どうすればこれを修正できますか? また、PHP で整数オーバーフローを回避するにはどうすればよいですか?