Задание 25. Информатика. ЕГЭ. Поляков-2579
- Просмотры: 119
- Изменено: 24 ноября 2024
(Б.С. Михлин) Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку \([286564; \, 287270]\), числа, имеющие максимальное количество различных делителей. Если таких чисел несколько, то найдите максимальное из них. В ответе запишите два числа: количество делителей найденного числа и его наибольший делитель, не равный самому числу.
Решение:
Python
def search_div(n):
divisors = set()
for i in range(1, int(n**0.5)+1):
if not n % i:
divisors.add(i)
divisors.add(n//i)
return divisors
count_d = 0
max_d = 0
for n in range(286564, 287271):
divisors = [*search_div(n)]
c = len(divisors)
if count_d <= c:
count_d = c
divisors.sort()
max_d = divisors[-2]
print(count_d, max_d)
Ответ: 112 143520