Задать вопрос

Решето эратосфена для большого числа?

добрый день!
хочу найти наибольший простой делитель большого числа.
как? 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
как я понял мое число не входит в тип ИНТ.
как можно решить эту проблему?
спасибо
  • Вопрос задан
  • 2258 просмотров
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
Можно попробовать скомпилировать пхп с поддержкой x64
Ответ написан
Комментировать
@adun3 Автор вопроса
видимо создать массив с таким количеством элементов плохая затея, будем думать:)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽