Ошибка.
Попробуйте повторить позже
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку , числа, которые в делителях имеют число-палиндром. Программа должна вывести количество таких чисел. Числа-палиндромы — числа, которые читаются одинаково как справа налево, так и слева направо. Минимальная длина числа-палиндрома равна .
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)
Ошибка.
Попробуйте повторить позже
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [12345;12425], числа, которые в делителях имеют число-палиндром. Программа должна вывести количество таких чисел.
Числа-палиндромы - числа, которые читаются одинаково как справа налево, так и слева направо. Минимальная длина числа-палиндрома равна 2.
b = 12425
count = 0 # Будущий ответ
for i in range(a, b + 1):
has_div_pal = False # Имеет ли число делитель-палинром?
for j in range(1, i + 1):
if i % j == 0:
# Число будет палиндромом, если оно читается с 2 сторон одинаково
# и его длина > 1
if str(j)==str(j)[::-1] and len(str(j)) > 1:
has_div_pal = True
break
if str(i//j) == str(i//j)[::-1] and len(str(i//j)) > 1:
has_div_pal = True
break
if (has_div_pal):
count += 1
print(count)