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