(ЕГЭ-2024) Пусть \(М\) – сумма минимального и максимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то значение \(М\) считается равным нулю. Например, для числа \(20\) имеем \(М = 2 + 10 = 12.\) Напишите программу, которая перебирает целые числа, меньшие \(900~000,\) в порядке убывания и ищет среди них такие, для которых значение \(М\) оканчивается на \(112.\) В ответе запишите в первом столбце таблицы первые пять найденных чисел в порядке возрастания, а во втором столбце – соответствующие им значения \(М.\)
Решение:
Python
def M(n):
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return i + n // i
return 0
q = 0
n = 900_000
ans = []
while q < 5:
n -= 1
m = M(n)
if m % 1000 == 112:
ans.append((n, m))
q += 1
ans.sort()
for n, m in ans:
print(n, m)
Ответ:
\(895535 \,\, 179112\)
\(896220 \,\, 448112\)
\(897327 \,\, 299112\)
\(898220 \,\, 449112\)
\(899047 \,\, 39112\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене