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

№ 25015. Типовые варианты

Пусть F – разность максимального и минимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей нет, то считаем значение F равным нулю.

Напишите программу, которая перебирает целые числа, большие 850 000, в порядке возрастания и ищет среди них такие, для которых значение F не равно нулю и делится нацело на 11. Программа должна найти и вывести первые 6 таких чисел и соответствующие им значения F.

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):
        diff = max(res) - min(res)
        if diff % 11 == 0:
            return diff
    return 0


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

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

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