Сумма логических условий php для делителей

#php #algorithm #function #logic

#php #алгоритм #функция #Логические

Вопрос:

У меня есть массив чисел от 1 до 100, и мне нужно найти список чисел, применяющих два условия: первая сумма делителей больше самой себя, а второе условие: ни одно подмножество делителей не может суммировать само число, для этого у меня есть php-код

   $arrayNumbers = [];
   //array numbers 1 - 100
    $a = 1;
    $b = 100;

        for ($n = $a; $n <= $b; $n  ) {
            $conditionOne = false; // Condition one: sum of the divisors greater than ifself
            $conditionTwo = false; // Condition two: No subset of those divisors sums itself
            $multiples = [];
            $subset = [];
            // Get sum of multiples divisors
            for ($i = 1; $i < $n; $i  ) {
                if ($n % $i == 0) 
                $multiples[]= $i;
            }
            //Condition one sum of the divisors greater than itself
            if (array_sum( $multiples ) > $n) 
                $conditionOne = true;

            foreach ($multiples as $number) {
                if ($number % 2 == 0) $subset[]= $number;
            }
            // Condition tow sum of the divisors greater than itself
            if (array_sum($subset) > $n) 
                $conditionTwo = true;
            // If first ondition one match with second condition two
            if ($conditionOne amp;amp; $conditionTwo) 
                $arrayNumbers[] = $n;
        }

    echo implode('</br>$arrayNumbers ); 
  

Правильна ли эта логика php? заранее спасибо.

Комментарии:

1. Да, это выглядит правильно, но это не совсем эффективно. однако $ beerstaps[] должен быть $ arrayNumbers[].

2. Спасибо @Nerdi.org Я отредактировал переменную.