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

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

Формат вывода: для каждого найденного числа записывается пара из наименьшего и наибольшего делителя в порядке возрастания, делители разделены пробелом. Следующая такая пара записывается так же через пробел, пары расположены в порядке возрастания произведения двух делителей.

# Функция поиска делителей числа n (не включая 1 и само число)
def find_divs(n):
    divs = set()  # Множество для хранения делителей
    for i in range(2, 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(21514, 30101 + 1):
    divs = find_divs(i)  # Множество делителей числа i
    if len(divs) == 3:
        print(min(divs),max(divs), end=’ ’)

Ответ: 13 2197
Оцените статью
Я решу все!