python反素数(逆向拼写的素数)是指一个将其逆向拼写后也是一个素数的非回文数。例如:17和71都是素数,所以,17和71都是反素数。编写程序,输入一个正整数,显示大于该数的前10个反素数。

python反素数(逆向拼写的素数)是指一个将其逆向拼写后也是一个素数的非回文数。例如:17和71都是素数,所以,17和71都是反素数。编写程序,输入一个正整数,显示大于该数的前10个反素数。

问题描述:

题目内容:
反素数(逆向拼写的素数)是指一个将其逆向拼写后也是一个素数的非回文数。例如:17和71都是素数,所以,17和71都是反素数。编写程序,输入一个正整数,显示大于该数的前10个反素数。

输入格式:
一个正整数

输出格式:
显示前10个反素数,在同一行输出,空格分隔,结尾无空格。

输入样例:
12

输出样例:
13 17 31 37 71 73 79 97 107 113

def prime(n):
for i in range(2,n//2+1):
if n%i==0:
return False
return True
n=int(input())
sum=0
while sum<10:
n+=1
n_reverse=str(n)
n_reverse=int(n_reverse[::-1])
if prime(n) and prime(n_reverse) and n_reverse!=n:
sum+=1
if sum==10:
print(n,end="")
else:
print(n,end=" ")

以下代码Out(n)函数中的条件之一: str(n)!=str(n)[::-1],为排除101这类反素数等于自身的回文数。

def isPrime(n):
    for i in range(2,n):
        if n%i==0: return False
    return True
 
def Out(n):
    res = []
    while len(res)<10:
        n += 1
        if isPrime(n) and isPrime(int(str(n)[::-1])) and str(n)!=str(n)[::-1]:
            res.append(n)
    return res


num = int(input('请输入一个正整数:'))

for i in Out(num):
    print(i, end=' ')