Перебор без ошибок · тема 6 из 8
Делители до квадратного корня
Теория чисел · ЕГЭ 25
Одна идея — один пример
Если d делит n, второй делитель равен n // d. Достаточно проверять d до isqrt(n) включительно. Для полного квадрата два делителя совпадут.
from math import isqrt
print(isqrt(35), isqrt(36))
Теперь решаем самостоятельно
Множество set убирает совпадающие делители. sorted возвращает упорядоченный список.
Вводится n (1 ≤ n ≤ 100000). Выведи все его положительные делители по возрастанию через пробел.
Пример входных данных и результата
Ввод:
12
Вывод:
1 2 3 4 6 12
Черновик и файл программы
Черновик сохраняется в этом браузере. Ctrl/⌘ + S — сохранить.
Результаты проверки
Напиши решение и нажми «Проверить код». Данные каждого теста подаются автоматически.
Нужна подсказка?
Добавляй d и n // d только при n % d == 0.
На чём легко ошибиться
Без +1 в range можно потерять квадратный корень.
Разобрать один из способов решения
Сначала попробуй написать код сам. Сравни алгоритм, затем закрой разбор и воспроизведи решение без подсказки.
from math import isqrt
n = int(input())
divisors = set()
for d in range(1, isqrt(n) + 1):
if n % d == 0:
divisors.add(d)
divisors.add(n // d)
print(*sorted(divisors))Тесты проверяют результат на учебных примерах, но не доказывают правильность для любого входа. Объясни каждую строку и предложи собственный тест.
Перед следующей темой
Назови входные данные, результат, основной шаг алгоритма и граничный случай. Если использовал разбор, напиши решение заново. Для свободных экспериментов открой Python онлайн.
Все темы этого курса
Программа подготовлена по темам банка «Академии С». Официальные документы: ФИПИ. Справочник языка: Python. Не все экзаменационные задачи нужно решать программой: например, работа в таблицах требует освоения табличного редактора.