Делители числа на Python по шагам (задание 25 ЕГЭ)

Пример уже в редакторе: нажмите «По шагам» и смотрите, как меняются переменные.

main.py
Загружаю Python… выполнена следующая
Переменные и вызовы
Каждая строка — один вызов input()
Вывод

Делители числа (задание 25): разбор по шагам

Если d делит n, то n // d — тоже делитель. Поэтому достаточно перебирать d только до √n и сразу добавлять пару. Для n около миллиона это 1000 проверок вместо миллиона.

Множество set не даёт добавить один делитель дважды, когда n — точный квадрат.

На что смотреть в пошаговом режиме

  • как d перебирается только до корня из 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: как пользоваться и частые вопросы

Примеры для разбора по шагам

Основы
ЕГЭ
Алгоритмы

Другие инструменты SilverTests