(Б.С. Михлин) Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку \([586132; \, 586430],\) числа, имеющие максимальное количество различных делителей. Найдите минимальное и максимальное из таких чисел. Для каждого из них в отдельной строчке выведите количество делителей и наибольший делитель, не равный самому числу.
Решение:
Python
mx = 0
ans = []
for n in range(586132, 586431):
ds = {d for i in range(1, int(n**0.5) + 1) if n % i == 0
for d in (i, n // i)}
div = sorted(list(ds))
if len(ds) > mx:
mx = len(div)
ans = [div[-2]]
elif len(ds) == mx:
ans.append(div[-2])
print(mx, ans[0])
print(mx, ans[-1])
Ответ:
\(80 \,\, 293112\)
\(80 \,\, 293160\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене