Пусть \(M\) – сумма минимального и максимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то значение \(M\) признаётся равным нулю.
Напишите программу, которая перебирает целые числа, бо́льшие \(800~000,\) в порядке возрастания и ищет среди них такие, для которых \(M\) оканчивается на \(4.\) В ответе запишите в первом столбце таблицы первые пять найденных чисел в порядке возрастания, а во втором столбце – соответствующие им значения \(M.\)
Например, для числа \(20\) \(M = 2 + 10 = 12.\)
Количество строк в таблице для ответа избыточно.
Решение:
Python
def M(n):
result = []
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
result.append(i)
result.append(n // i)
break
return sum(result) if result else 0
q = 0
n = 800_000
while q < 5:
m = M(n)
if m % 10 == 4:
print(n, m)
q += 1
n += 1
Ответ:
\(800004 \,\, 400004\)
\(800009 \,\, 114294\)
\(800013 \,\, 266674\)
\(800024 \,\, 400014\)
\(800033 \,\, 61554\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене