Пример уже в редакторе: нажмите «По шагам» и смотрите, как меняются переменные.
Если d делит n, то n // d — тоже делитель. Поэтому достаточно перебирать d только до √n и сразу добавлять пару. Для n около миллиона это 1000 проверок вместо миллиона.
Множество set не даёт добавить один делитель дважды, когда n — точный квадрат.
n = int(input()) divs = set() d = 1 while d * d <= n: if n % d == 0: divs.add(d) divs.add(n // d) d += 1 result = sorted(divs) print('Делители', n, ':', result) print('Количество:', len(result))
Код уже в редакторе. Нажмите «По шагам» и листайте шаги кнопкой ▶ или клавишей →. Код можно менять и запускать заново.
Отладчик Python: как пользоваться и частые вопросы
По ссылке откроются код и входные данные. Файлы во вкладке «Файлы» в ссылку не входят.