Информатика. ЕГЭ
Задания для подготовки
Задачи разных лет из реальных экзаменов, демо-вариантов, сборников задач и других источников
Задание 25. Информатика. ЕГЭ. Шастин. 7.05.2025
- Просмотры: 1712
- Изменено: 10 мая 2025
(Л. Шастин) Обозначим через \(F\) целую часть среднего арифметического всех простых делителей целого числа, оканчивающихся на \(7,\) не считая самого числа. Если таких делителей у числа нет, то считаем значение \(F\) равным нулю. Напишите программу, которая перебирает целые числа, меньшие \(750~000,\) в порядке убывания, и ищет среди них такие, для которых значение \(F\) не равно нулю и кратно \(111.\)
Выведите первые \(5\) найденных числа в порядке убывания и справа от каждого числа — соответствующие им значения \(F.\)
Например, для числа \(119\) значение \(F = (7 + 17)/2 = 12.\) Количество строк для записи ответа избыточно.
Решение:
Python
def is_prime(n):
if n == 2:
return True
for x in range(2, int(n**0.5) + 1):
if n % x == 0:
return False
return True
def F(n):
div = set()
for x in range(2, int(n**0.5) + 1):
if n % x == 0:
if x % 10 == 7 and is_prime(x):
div.add(x)
d = n // x
if d % 10 == 7 and is_prime(d):
div.add(d)
return sum(div) // len(div) if div else 0
#print(F(119))
q = 0
n = 750_000
while q < 5:
n -= 1
avg = F(n)
if avg and avg % 111 == 0:
print(n, avg)
q += 1
Ответ:
\(749039 \,\, 7992\)
\(748679 \,\, 3552\)
\(748663 \,\, 333\)
\(746360 \,\, 222\)
\(745109 \,\, 2997\)
Обсуждение задания
Здесь пока нет ни одного комментария. Будьте первым!


