Задание 25. Информатика. ЕГЭ. Поляков-2578

Просмотры: 169
Изменено: 24 ноября 2024

(Б.С. Михлин) Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку \([394441; \, 394505]\), числа, имеющие максимальное количество различных делителей. Если таких чисел несколько, то найдите минимальное из них. В ответе запишите два числа: количество делителей найденного числа и само число.

Решение:

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

n_max_d = 0
max_d = 0

for n in range(394441, 394506):
    d = len(search_div(n))
    if d > max_d:
        max_d, n_max_d = d, n

print(max_d, n_max_d)

Ответ: 48   394450