Мне нужно создать рекурсивную функцию, чтобы найти все палиндромные простые числа между двумя числами. Хитрость заключается в том, чтобы вообще не использовать цикл for of или итерацию. Как новичок в программировании, я борюсь с рекурсией, и мне удалось написать программу с циклами как:
def palindrome(startpoint,endpoint):
print("The palindromic numbers are:\n")
num = ''
inverted = ''
for i in range(startpoint+1,endpoint):
num = str(i)
for j in range(len(num)-1, -1, -1):
inverted += str(num[j])
if (num == inverted):
print(num)
num = ''
inverted = ''
def main():
startpoint = eval(input("Enter the starting point N:\n"))
endpoint = eval(input("Enter the ending point M::\n"))
palindrome(startpoint,endpoint)
main()
Я пытался написать эту программу рекурсивно, но безуспешно.
Должен ли я сначала обрабатывать числа как строки и проверять, являются ли они такими палиндромами?
def palindrome (str):
if str == "":
return str
else:
return palindrome (str[1:]) + str[0]
Затем проверьте простые числа следующим образом:
def prime(n):
if n%2 == 0:
return False
else:
return True
Я все еще пытаюсь разобраться с этим, любая помощь будет оценена по достоинству :)