Пусть M – сумма минимального и максимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то значение M считается равным нулю.
Напишите программу, которая перебирает целые числа, бо́льшие 700 000, в порядке возрастания и ищет среди них такие, для которых значение M оканчивается на 8. Выведите первые пять найденных чисел
и соответствующие им значения M.
Формат вывода: для каждого из пяти таких найденных чисел в отдельной строке сначала выводится само число, затем – значение М.
Строки выводятся в порядке возрастания найденных чисел.
Количество строк в таблице для ответа избыточно.
Ответы:
Демонстрационный вариант ЕГЭ 2022 г. – задание №25
Решение:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
def M(a): d=2 while d*d<=a: if a%d==0: return d+(a//d) d+=1 return 0 k = 0 for i in range(700000, 1000000): if M(i)%10 == 8: k+=1 print(i, M(i)) if k==5: break |
Ответ:
700005 233338
700007 100008
700012 350008
700015 140008
700031 24168