Вычисление суммы делителей числа в PHP: методы и примеры

Вот несколько методов вычисления суммы всех делителей числа в PHP:

Метод 1: метод грубой силы

function sumFactors($number) {
    $sum = 0;
    for ($i = 1; $i <= $number; $i++) {
        if ($number % $i == 0) {
            $sum += $i;
        }
    }
    return $sum;
}

Метод 2: оптимизированный подход

function sumFactors($number) {
    $sum = 0;
    $sqrt = sqrt($number);
    for ($i = 1; $i <= $sqrt; $i++) {
        if ($number % $i == 0) {
            $sum += $i;
            if ($i != $number / $i) {
                $sum += $number / $i;
            }
        }
    }
    return $sum;
}

В методе 1 мы перебираем все числа от 1 до заданного числа и проверяем, является ли оно множителем. Если да, то добавляем его к сумме.

В методе 2 мы оптимизируем процесс, повторяя его только до квадратного корня из заданного числа. К сумме добавляем и фактор, и соответствующую ему пару (если они разные).

Обратите внимание, что всегда полезно оптимизировать алгоритмы для достижения большей производительности, особенно при работе с большими числами. Второй метод, представленный выше, более эффективен, чем метод грубой силы.