Вероятно, вы уже прошли через эту идею, но вот что я хотел бы сделать ...
Если у вас есть функция палиндром, как этот:
def palindrome(word):
if len(word) == 1 or (len(word) == 2 and word[0] == word[1]):
return True
else:
if word[0] == word[len(word)-1]:
return palindrome(word[1] + word[len(word)-2])
else:
return False
И скажем, у вас есть функция, чтобы выяснить, если число является простым (это я беру из here):
def is_prime(number):
if number > 1:
if number == 2:
return True
if number % 2 == 0:
return False
for current in range(3, int(math.sqrt(number) + 1), 2):
if number % current == 0:
return False
return True
return False
вы можете просто позвонить проверку, когда вы узнаете, если ваш номер палиндром (литье это ул первой). Недостающая часть генерирует комбинацию двух целых чисел, которые вы можете получить, но хорошо, это просто.
Надеюсь, это поможет.
-Edit: Добавление рекурсивной функции для получения простых чисел:
def prime(number,limit = 1):
if limit == number:
return True
else:
if number % limit == 0 and limit != 1:
return False
else:
return prime(number, limit + 1)
игнорировать весь основной бизнес - просто выяснить, как сделать бизнес в палиндроме. –
Но я должен также проверить, являются ли цифры простыми числами, правильно? – John
@John да, но у вас есть два критерия, работайте по одному за раз. –