反素数
类型:函数
描述
反素数(逆向拼写的素数)是指一个将其逆向拼写后也是一个素数的非回文数。
例如:13和31都是素数,且13和31都不是回文数,所以,13和31是反素数。
输入一个正整数 n , 请在同一行输出从小到大排列的的前n个反素数,每个数字后面加一个空格。
输入格式
输入一个正整数
输出格式
符合条件的反素数
示例
输入:
10
输出:
13 17 31 37 71 73 79 97 107 113
参考代码
def is_prime(n):
if n <= 1: # 小于2的数字单独处理
return True
for i in range(2, int(n ** (1 / 2) + 1)): # 根据素数定义判定是否是素数,是素数返回1
if n % i == 0:
return False
return True
def palindromic(num):
"""接收一个数字为参数,判定其是否为回文数,返回布尔值。"""
return str(num) == str(num)[::-1]
def reverse_num(num):
"""接收一个整数,返回其逆序字符串对应的整数"""
return int(str(num)[::-1])
def reverse_prime(number):
i = 2
count = 0
while True:
if not palindromic(i) and is_prime(i) and is_prime(reverse_num(i)):
print(i, end=' ') # i为回文素数时输出i,输出后不换行
count = count + 1
if count == number:
break
i = i + 1
if __name__ == "__main__":
n = int(input())
reverse_prime(n)