Форум » Обработка целых чисел » Формулировка задачи 2573 » Ответить

Формулировка задачи 2573

duzhinsky: 2573 - (А.Н. Носкин) Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [190061; 190072], числа, имеющие ровно 4 различных НЕЧЁТНЫХ делителя. В ответе для каждого найденного числа запишите два его наибольших делителя в порядке убывания. В ключах такой ответ: 190061 6131 11879 1697 ! 190067 2677 23759 1033 ! Для чисел 190064 и 190072 указаны наибольшие нечетные делители (выделил !), когда в условии спрашивают два наибольших делителя, не уточняя их четность. Мое решение: [pre2] for i in range(190061, 190072+1): divs = [x for x in range(1, int(i**0.5)+1) if i%x == 0] divs += [i//x for x in divs if i//x not in divs] divs = sorted(divs) odds = sum(1 for x in divs if x%2) if odds == 4: print(divs[-1], divs[-2]) [/pre2] Вывод: 190061 6131 190064 95032 190067 2677 190072 95036

Ответов - 1

Поляков: Спасибо. Там нужно вывести два наибольших нечётных делителя. Исправлено.



полная версия страницы