Нужно написать программу условия следующие Строгий непалиндром Строгим непалиндромом назовем целое число N, которое не является палиндромом в любой позиционной системе счисления в диапазоне от 2 до N - 2. Например, число 6 записывается как 1102, 203 и 124, ни одно из которых не является палиндромом, поэтому 6 строго непалиндромное. Напишите программу, которая проверяет, является ли число строгим непалиндромом. Формат входных данных В первой строке вводится количество чисел для проверки M (0 < M < 10). В следующих M строках натуральные числа до 107. Формат результата Для каждого из M чисел выведите “YES” если число является строгим непалиндромом, и “NO” иначе.
def is_palindrome(n): str_n = str(n) return str_n == str_n[::-1] def is_strictly_non_palindrome(n): if is_palindrome(n): return False for i in range(2, n-1): base_n = "" temp = n while temp > 0: base_n = str(temp % i) + base_n temp = temp // i if is_palindrome(int(base_n)): return False return True # Ввод данных M = int(input()) numbers = [] for _ in range(M): numbers.append(int(input())) # Проверка чисел на строгий непалиндром for num in numbers: if is_strictly_non_palindrome(num): print("YES") else: print("NO")
Пример решения на языке Python:
def is_palindrome(n):str_n = str(n)
return str_n == str_n[::-1]
def is_strictly_non_palindrome(n):
if is_palindrome(n):
return False
for i in range(2, n-1):
base_n = ""
temp = n
while temp > 0:
base_n = str(temp % i) + base_n
temp = temp // i
if is_palindrome(int(base_n)):
return False
return True
# Ввод данных
M = int(input())
numbers = []
for _ in range(M):
numbers.append(int(input()))
# Проверка чисел на строгий непалиндром
for num in numbers:
if is_strictly_non_palindrome(num):
print("YES")
else:
print("NO")
Пример ввода:
36
10
121
Пример вывода:
YESYES
NO