Задача к ЕГЭ по информатике на тему «делители числа» №2

Найдите 5 составных (не простых) чисел больших 800000, таких, что сумма их наименьшего и наибольшего нетривиальных делителей (не считая единицы и самого числа) делится на 138. В ответе приведите 5 наименьших чисел, соответствующих условию, числа запишите в порядке возрастания через пробел.

c = 0 # Счётчик подходящих чисел
for i in range(800001, 900000):
    ds = set()
    for d in range(2, int(i**0.5)+1):
        if i % d == 0:
            ds.add(d)
            ds.add(i//d)
    # Делаем из множества отсортированный список,
    # чтобы можно было по индексам найти делители
    ds = sorted(list(ds))
    if len(ds) > 0 and (ds[0]+ds[-1]) % 138 == 0:
        c += 1
        print(i)
    # Если уже накопилось 5 чисел, то прерываем цикл
    if c == 5:
        break

Ответ: 800120 800253 800273 800375 800396
Оцените статью
Я решу все!