Пусть M – сумма минимального и максимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то значение M признаётся равным нулю.
Напишите программу, которая перебирает целые числа, бо́льшие 800 000, в порядке возрастания и ищет среди них такие, для которых M оканчивается на 4. В ответе запишите в первом столбце таблицы первые пять найденных чисел в порядке возрастания, а во втором столбце – соответствующие им значения M.
Например, для числа 20 М = 2 + 10 = 12.
Количество строк в таблице для ответа избыточно.
Демонстрационный вариант ЕГЭ 2026 г. – задание №25
Решение:
Решение на Python
|
1 2 3 4 5 6 7 8 |
def M(n): for d in range(2, int(n**0.5)+1): if n%d==0: return d+n//d return 0 for i in range(800_001, 801_000): if M(i)%10==4: print(i, M(i)) |
ИЛИ
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
def div(x): d =set() for i in range(2, int(x**0.5)+1): if x%i==0: d.add(i) d.add(x//i) return sorted(d) k=0 for x in range(800_001, 801_000): if k==5: break d = div(x) if len(d)>0: M = min(d)+max(d) if M%10==4: k+=1 print(x, M) |
Ответ:
800004 400004
800009 114294
800013 266674
800024 400014
800033 61554
