フェルマーの素数性テストを多数(100,000以上)で使用する場合に必要となるようにべき乗剰余を使用するには、非常に大規模な計算が必要になります。
2つの大きな数(例:62574と62574)を乗算すると、PHPは結果をfloatにキャストするようです。そのモジュラス値を取得すると、奇妙な値が返されます。
$x = 62574 * 62574;
var_dump($x); // float(3915505476) ... correct
var_dump($x % 104659); // int(-72945) ... wtf.
PHPにこれらの計算を適切に実行させる方法はありますか?あるいは、大きな数で機能するモジュラス値を見つけるための別の方法はありますか?