これは、後の段階で数の除算をチェックする素数を見つけるための簡単なプログラムです。
複雑さを分解するために、最初に数値の整数平方根をとることで、それを短縮しようとしました。それでも、スクリプトの実行には非常に時間がかかります。実行時間を短縮するためにコードに実装できるその他の変更 (既に最大実行時間を 5 分に設定しています)
<?php
error_reporting(E_ALL);
$num = 600851475143;
//$sqrt_num = (int)sqrt($num);
for( $j = 2; $j <= $num; $j++ )
{
for( $k = 2; $k < $j; $k++ )
{
if( $j % $k == 0 )
{
break;
}
}
if( $k == $j )
{
//echo "Prime Number : ", $j, "<br>";
if( $num % $j == 0 )
{
echo "Prime number : ", $j, "<br>";
}
}
}
EDIT sqrt の行にコメントを付けたのは、これが正しいように思われるためです..しかし、それでもループには多くの時間がかかります。