как найти сумму всех простых делителей числа БЕЗ массива?

как найти сумму всех простых делителей числа БЕЗ массива? java


Ответы (1 шт):

Автор решения: Zhihar

если нет требований к скорости алгоритма, то можно сделать следующее:

  1. определяем максимальное число, до которого могут быть делители числа N - оно равно M = sqrt(N) (привет решету Эратосфена)

  2. делаем цикл I от 2 до М

  3. если число N делится на I, то

N = N / I

SUM = SUM + I

  1. повторяем этап 2) до тех пор пока N не будет равно 1

  2. SUM = SUM + 1 (вообще 1 не является простым числом, но иногда его считают)

  3. если на этапе 2) не было найдено ни одного делителя, значит число простое и

SUM = 1 + N

Немного оптимизации:

  1. если на этапе 2) был найден делитель I, но новый этап 2) надо начинать не с 2, а с I
→ Ссылка