добрый день!
хочу найти наибольший простой делитель большого числа.
как? 1)прорешетить все простые до моего числа. 2)проверить делиться ли каждое на мое число. 3)выбрать максимальное из отобранных.
Это первое что пришло в голову. для поиска всех простых чисел нашел алгоритм "Решето Э."
define("LIMIT", 600851475143);
define("SQRT_LIMIT",floor(sqrt(LIMIT)));
$S = array_fill(2,LIMIT-1,true);
for($i=2;$i<=SQRT_LIMIT;$i++){
if($S[$i]===true){
for($j=$i*$i; $j<=LIMIT; $j+=$i){
$S[$j]=false;
}
}
}
for($n=2; $n<=count($S); $n++)
{
if($S[$n])
{
echo ' '.$n;
}
}
но сразу выдает ошибку: array_fill(): Number of elements must be positive
как я понял мое число не входит в тип ИНТ.
как можно решить эту проблему?
спасибо