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

Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [11111;22222]  , числа, которые в делителях имеют число-палиндром. Программа должна вывести количество таких чисел. Числа-палиндромы — числа, которые читаются одинаково как справа налево, так и слева направо. Минимальная длина числа-палиндрома равна 2  .

def f(n): # функция для проверки есть ли у числа делитель - палиндром
    for x in range(1, int(n ** 0.5) + 1):
        if n % x == 0:
            if len(str(x)) > 1 and str(x) == str(x)[::-1]:
                return True
            if x != n // x and len(str(n // x)) > 1 and 
                    str(n // x) == str(n // x)[::-1]:
                return True
    return False

result = 0
for i in range(11111, 22222 + 1):
    if f(i): # проверка есть ли у числа делитель палиндром
        result += 1
print(result)

Ответ: 2503
Оцените статью
Я решу все!