Задача к ЕГЭ по информатике на тему «делители числа» №1

Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [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
Оцените статью
Я решу все!