(Е. Джобс) Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку \([321654; \, 654321],\) числа у которых есть только нечетные делители, количество которых больше \(70.\) Делители \(1\) и само число не учитываются. Для каждого найденного числа запишите само число и максимальный по величине делитель.
Решение:
Python
for n in range(321654, 654322):
divs = {d for i in range(2, int(n**0.5)+1) if n % i == 0
for d in (i, n // i)}
if all(d % 2 == 1 for d in divs) and len(divs) > 70:
print(n, max(divs))
Ответ:
\(405405 \,\, 135135\)
\(530145 \,\, 176715\)
\(592515 \,\, 197505\)
\(626535 \,\, 208845\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене