Задание 25. Информатика. ЕГЭ. Шастин. 6.11.2024

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

(Л. Шастин) Обозначим через \(A\) целую часть среднего арифметического всех делителей фелого числа, не считая самого числа. Напишите программу, которая перебирает целые числа, меньшие \(770000\), в порядке убывания и ищет среди них такие, для которых значение \(A\) оканчивается на \(12\). Выведите первые \(5\) найденных чисел и соответствующие им значения \(A\).

Формат вывода: для каждого из \(5\) таких найденных чисел в отдельной строке сначала выводится само число, затем — значение \(A\). Строки выводятся в порядке убывания найденных чисел.

Например, для числа \(8\) значение \(A = (1 + 2 + 4) / 3 = 2\).

Количество строк в таблице для ответа избыточно.

Решение:

Python


def mdiv(n):
    divisors = set()
    for i in range(2, int(n**0.5) + 1):
        if n % i == 0:
            divisors.add(i)
            divisors.add(n // i)
    divisors.add(1)
    return sum(divisors) // len(divisors)

n = 770000
q = 0
while q < 5:
    n -= 1
    A = mdiv(n)
    if A % 100 == 12:
        print(n, A)
        q += 1

Ответ:
\(769995 \,\, 25612\)
\(769923 \,\, 18312\)
\(769916 \,\, 35712\)
\(769700 \,\, 27112\)
\(769583 \,\, 2912\)