Добрый день! хочу найти наибольший простой делитель числа 600851475143.
как делаем? ищем все простые числа до корня(600851475143), т.е. до 775147, а потом проверяем делимость 600851475143 на эти простые числа. но почему то выдает 3 и 29(и то и то не делитель). подскажите пожалуйста, где туплю, я только начал прогать, если что.
define("LIMIT",775147);
define("SQRT_LIMIT",floor(sqrt(LIMIT)));
$S = str_repeat("\1", LIMIT+1);
for($i=2;$i<=SQRT_LIMIT;$i++){
if($S[$i]==="\1"){
for($j=$i*$i; $j<=LIMIT; $j+=$i){
$S[$j]="\0";
}
}
}
for($i=2;$i<=LIMIT;$i++)
{
if($S[$i]=="\1" && (600851475143 % $i) == 0)
{
echo $i.' ';
}
}
?>