Алгоритм решения задания 14. Часть 1
Учимся решать 15 задания первого типа
Читать
Пусть M – сумма минимального и максимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то считаем значение M равным нулю.
Напишите программу, которая перебирает целые числа, бо́льшие 800 000, в порядке возрастания и ищет среди них такие, для которых M оканчивается на 4.
В ответе запишите в первом столбце таблицы первые пять найденных чисел в порядке возрастания, а во втором столбце – соответствующие им значения M.
Например, для числа 20 М = 2 + 10 = 12.
from math import isqrt
def f(num):
res = set()
for i in range(2, isqrt(num) + 1):
if num % i == 0:
res |= {i, num // i}
if len(res):
summ = min(res) + max(res)
if summ % 10 == 4:
return summ
return 0
cnt = 0
for i in range(800_001, 10 ** 20):
if R := f(i):
print(i, R)
cnt += 1
if cnt == 5:
break
