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

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

def divs(x): # функция возращающая список делителей определенного числа
    d = set()
    for i in range(1, int(x**0.5)+1):
        if x % i == 0:
            d.add(i)
            d.add(x//i)
    return sorted(d)
for x in range(287429, 319267+1):
    d = divs(x)
    if len(d) == 3: # если у определенного числа 3 делителя
        print(d[1]) # вывод второго делителя


Ответ: 541 547 557 563
Оцените статью
Я решу все!