Предмет: Информатика, автор: vardana

пожалуйста, на питоне, с ответом и кодом
Дан числовой отрезок натуральных чисел: [85, 158]. Напишите программу, которая ищет на данном отрезке числа, у которых ровно четыре делителя, не считая единицы и самого числа.

Для каждого найденного числа запишите через пробел само число и наибольший делитель этого числа (кроме самого числа). Каждая следующая найденная пара пишется с новой строки в порядке возрастания первого числа. Например, если подошло два числа: 10 и 21, необходимо записать в ответ:

10 5

21 7

В качестве ответа прикрепите код программы, а также ответ в формате, указанном ранее.

Ответы

Автор ответа: NaaMan
1

Программа:

#! /usr/bin/env python3

#! encoding: utf-8

for i in range(85, 159):

   m = [x for x in range(2,i) if i%x==0 ]

   if len(m) == 4:

       print( i, max(m) )

Объяснение:

Первая строка программы - заголовок цикла, для перебора всех чисел, начиная с 85, и заканчивая числом 158. Эти числа перебираются в переменной i

Во второй строке использован генератор списка с условием: в список входят все числа x, начиная от 2 до числа i, определенного циклом, если i делится на x без остатка, т.е. если х - делитель числа i.

В третьей строке проверяется длина списка. Если там 4 элемента, то

четвертая строка: на экран выводится число i и максимальный делитель из найденных четырех.

Если в списке не 4 делителя, то цикл продолжается, берется следующее число из промежутка (85, 158).

Результат выполнения программы на скриншоте.

Приложения:
Похожие вопросы
Предмет: Русский язык, автор: зкщлщ500111