Задача к ЕГЭ по информатике на тему «делители числа» №1

Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [193136; 193223], числа, имеющие ровно 6 различных делителей. Выведите для каждого найденного числа два наибольших делителя в порядке возрастания через пробел.

def find_divs(n): # функция, которая возвращает множество делителей числа
    divs = set()  # Множество для хранения делителей
    for i in range(1, int(n ** 0.5) + 1):
        # Если i делитель n
        if n % i == 0:
            # Добавляем делитель и парный ему в множество
            divs.add(i)  # Добавляем i в множество делителей
            divs.add(n // i)  # Добавляем парный делитель

    return divs  # Возвращаем множество делителей числа n


for i in range(193136, 193223 + 1):
    divs = sorted(find_divs(i)) # Множество делителей числа i
    if len(divs) == 6:
        print(divs[-2],divs[-1], end=’ ’)

Ответ: 38635 193175 96598 193196 64401 193203 27601 193207
Оцените статью
Я решу все!