← Все вопросы

Как найти все делители числа простым перебором?

Задан 6 месяцев назад187 просмотров2 ответа
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 обычно хватает. Тут на сайте есть отдельный разбор перебора делителей до корня, посмотри если интересна скорость.

Ваш ответ

Войдите, чтобы ответить на вопрос.