Вопрос задан 02.10.2026 в 04:46. Предмет Информатика. Спрашивает Меражи Кирилл.

Напишите код на Python.
Валентина прогуляла лекцию по математике. Преподаватель решил подшутить над нерадивой студенткой и попросил ее на практическом занятии перечислить все положительные делители некоторых целых чисел. Для несложных примеров студентка быстро нашла решения (для числа 6 это: 1, 2, 3, 6; а для числа 16 это: 1, 2, 4, 8, 16), но этим все не закончилось. На домашнее задание ей дали варианты посложнее: 23436, 190187200, 380457890232.

Перейти к ответам

Ответы на вопрос

Отвечает Калашников Иван.

Код на Python:
numbers = [23436, 190187200, 380457890232]

def divisors(n):
    small = []
    large = []
    i = 1
    while i * i <= n:
        if n % i == 0:
            small.append(i)
            if i != n // i:
                large.append(n // i)
        i += 1
    return small + large[::-1]

for number in numbers:
    print(number)
    print(divisors(number))

Программа перебирает числа только до квадратного корня из \(n\), поэтому работает быстрее, чем полный перебор до самого числа.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос