← Все вопросы
Как найти все делители числа простым перебором?
6
Хочу вывести все делители числа, например у 12 это 1, 2, 3, 4, 6, 12. Сделал цикл, но не уверен, что правильно. Как должно быть?
2 ответа
11
✓ Принятый ответ — помог автору
Делитель — это число, на которое наше делится без остатка, то есть остаток % i == 0. Перебираем все i от 1 до самого числа:
n = 12
for i in range(1, n + 1):
if n % i == 0:
print(i)
Выведет 1, 2, 3, 4, 6, 12. Главное не забыть n + 1 в range, иначе само число не попадёт.
3
Если число большое, такой перебор медленный. Делители идут парами (i и n // i), поэтому достаточно дойти до корня — но для школьных задач до n+1 обычно хватает. Тут на сайте есть отдельный разбор перебора делителей до корня, посмотри если интересна скорость.
Ваш ответ
Войдите, чтобы ответить на вопрос.