Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [64032;64130], число, имеющее максимальное количество различных натуральных делителей, если таких чисел несколько — найдите минимальное из них. В ответе запишите через пробел количество делителей такого числа и само число.
# Функция подсчёта количества делителей числа n
def count_divs(n):
divs = set() # Множество для хранения делителей
for i in range(1, int(n ** 0.5) + 1):
# Если i делитель n
if n % i == 0:
# Добавляем делитель и парный ему в множество
divs.add(i) # Добавляем i в множество делителей
divs.add(n // i) # Добавляем парный делитель
return len(divs) # Возвращаем количество уникальных делителей числа n
dmax = 0 # Наибольшее количество натуральных делителей
number = 0 # Число, имеющее максимальное количество различных натуральных делителей
for i in range(64032, 64130 + 1):
cdivs = count_divs(i)
if cdivs > dmax: # Неравенство строгое, так как просят найти наименьшее из таких чисел
dmax = cdivs
number = i
print(dmax, number, end=’ ’)
Ответ: 60 64080