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

Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [11110; 55556], числа, имеющие ровно три различных натуральных делителя, не считая единицы и самого числа. Для каждого найденного числа запишите эти три делителя через пробел в формате делитель1.1 делитель1.2 делитель1.3 делитель2.1 делитель2.2 делитель2.3…

def find_div(number): # функция для поиска нетривиальных делителей числа
    arr = []
    for div in range(2, int(number ** 0.5) + 1):
        if number % div == 0:
            arr.append(div)
            if div != number // div:
                arr.append(number // div)
        if len(arr) > 3: # для оптимизации выходим из цикла если у числа уже более 3 делителей - такие числа нам не подходят
            break
    return sorted(arr)


for i in range(11110, 55556 + 1):
    arr_div = find_div(i)
    if len(arr_div) == 3:
        print(*arr_div, end=’ ’)

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