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

№ 25010. Досрочная волна

Напишите программу, которая перебирает целые числа, бóльшие 1 125 000, в порядке возрастания и ищет среди них такие, у которых есть натуральный делитель, оканчивающийся на цифру 7 и не равный ни самому числу, ни числу 7.

В ответе запишите в первой строке таблицы первые пять найденных чисел в порядке возрастания, а во втором столбце – наименьший делитель для каждого из них, оканчивающийся цифрой 7, не равный ни самому числу, ни числу 7.

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}

    for div in sorted(res):
        if div % 10 == 7 and div != 7:
            return div
    return 0


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

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

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