描述
    反素数(逆向拼写的素数)是指一个将其逆向拼写后也是一个素数的非回文数。
    例如:
    13和31都是素数,且13和31都不是回文数,所以,13和31是反素数。
    输入一个正整数 n , 请在同一行输出从小到大排列的的前n个反素数,每个数字后面加一个空格。
    输入格式
    输入一个正整数
    输出格式
    符合条件的反素数
    示例
    输入: 10 输出: 13 17 31 37 71 73 79 97 107 113

    解析:

    1. 判定素数定义为函数
    2. 判定回文定义为一个函数
    3. 判定逆序字符串定义为一个函数
    4. 数字不是回文数,数字本身、逆序数都是素数
    5. 计数
    6. 在同一行内输出
    1. def is_prime(n):
    2. if n <= 1: # 小于2的数字单独处理
    3. return 0
    4. for i in range(2, int(n ** (1 / 2) + 1)): # 根据素数定义判定是否是素数,是素数返回1
    5. if n % i == 0:
    6. return 0
    7. return 1
    8. def palindromic(num):
    9. """接收一个数字为参数,判定其是否为回文数,返回布尔值。"""
    10. if str(num) == str(num)[::-1]:
    11. return True
    12. else:
    13. return False
    14. def reverse_num(num):
    15. """接收一个整数,返回其逆序字符串对应的整数"""
    16. return int(str(num)[::-1])
    17. def reverse_prime(number):
    18. i = 2
    19. count = 0
    20. while True:
    21. if not palindromic(i) and is_prime(i) and is_prime(reverse_num(i)):
    22. print(i, end=' ') # i为回文素数时输出i,输出后不换行
    23. count = count + 1
    24. if count == number:
    25. break
    26. i = i + 1
    27. if __name__ == "__main__":
    28. n = int(input())
    29. reverse_prime(n)
    1. def is_prime(n):
    2. if n <= 1: # 小于2的数字单独处理
    3. return 0
    4. for i in range(2, int(n ** (1 / 2) + 1)): # 根据素数定义判定是否是素数,是素数返回1
    5. if n % i == 0:
    6. return 0
    7. return 1
    8. def palindromic(num):
    9. """接收一个数字为参数,判定其是否为回文数,返回布尔值。"""
    10. if str(num) == str(num)[::-1]:
    11. return True
    12. else:
    13. return False
    14. def reverse_num(num):
    15. """接收一个整数,返回其逆序字符串对应的整数"""
    16. return int(str(num)[::-1])
    17. def reverse_prime(number):
    18. i = 2
    19. result = []
    20. while True:
    21. if not palindromic(i) and is_prime(i) and is_prime(reverse_num(i)):
    22. result.append(i)
    23. if len(result) == number:
    24. break
    25. i = i + 1
    26. return result
    27. if __name__ == "__main__":
    28. n = int(input())
    29. print(*reverse_prime(n))