ЕГЭ, ОГЭ, программирование и робототехника в Калининграде

№ 25001. Апробация

Пусть R — сумма различных натуральных делителей целого числа, не считая единицы и самого числа.

Напишите программу, которая перебирает целые числа, большие 500 000, в порядке возрастания и ищет среди них такие, для которых R оканчивается на цифру 9.

В ответе запишите в первом столбце таблицы первые пять найденных чисел в порядке возрастания, а во втором столбце — соответствующие им значения R.
Например, для числа 20 R = 2 + 4 + 5 + 10 = 21.

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 = sum(res)
        if summ % 10 == 9:
            return summ
    return 0


cnt = 0
for i in range(500_001, 10 ** 20):
    if R := f(i):
        print(i, R)
        cnt += 1
        if cnt == 5:
            break
Разберём это задание на бесплатном пробном занятии

Преподаватель покажет, как решать такие задачи, и подскажет, с чего начать подготовку. Группы до 8 человек, очно в Калининграде и онлайн.

Записаться на пробное занятие