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

Среди целых чисел, принадлежащих числовому отрезку [333555;777999]  , найдите числа, среди нетривиальных делителей которых есть ровно 38  двузначных чисел. Для каждого найденного числа запишите в ответе само число, наименьший и наибольший из его двузначных делителей через пробел. Так, например, для числа 36  учитываются только делители     12  и 18  .

def count_del(x): # функция, которая возращает список двухзначных делителей
    ans = []
    for i in range(2, int(x ** 0.5) + 1):
        if x % i == 0:
            if len(str(i)) == 2: # проверка, что делитель - двухзначный
                ans += [i]
            if i != x // i:
                if len(str(x // i)) == 2:
                    ans += [x // i]
    return sorted(ans)



for i in range(333555, 777999 + 1):
    d = count_del(i)
    if len(d) == 38:
        print(i, d[0], d[-1])

Ответ: 360360 10 99 776160 10 99
Оцените статью
Я решу все!