Задание 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\)