Объясните алгоритм нахождения простых делителей числа
Можете объяснить алгоритм данного кода. Данный код находит простые делители числа.
def simpleDividers(n):
answer = []
d = 2
while d * d <= n:
if n % d == 0:
answer.append(d)
n //= d
else:
d += 1
if n > 1:
answer.append(n)
return answer
Ответы (1 шт):
Автор решения: вася
→ Ссылка
def simpleDividers(n):
answer = [] # пустой список
d = 2 # начальное значение проверяемого делителя
while d * d <= n: # проверяем делители до корня из n
if n % d == 0: # если остаток от деления = 0
answer.append(d) # то добавляем в ответ
n //= d # делим n на d
else:
d += 1 # проверяем следующий делитель
if n > 1: # если в итоге n > 1
answer.append(n) # добавляем в ответ ещё этот n
return answer # возвращаем