Объясните алгоритм нахождения простых делителей числа

Можете объяснить алгоритм данного кода. Данный код находит простые делители числа.

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 # возвращаем
→ Ссылка