python反素数,编写程序,输入一个正整数,显示大于该数的前10个反素数。

python反素数,编写程序,输入一个正整数,显示大于该数的前10个反素数。

问题描述:

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

def issushu(n):
    a =True
    for x in range(2, n):
        if n%x==0:
            return False
    return True
def nixiang(m):
    m=str(m)
    m=m[::-1]
    m=eval(m)
    return m
def nothuiwenshu(s):
    s=str(s)
    if s==s[::-1]:
        return False
    else:
        return True
z = eval(input())
s= 0
while s<10:
    z=z+1
    if(issushu(z) and issushu(nixiang(z)) and nothuiwenshu(z)):
        s+=1
        if(s<10):
            print(str(z)+' ',end='')
        elif s== 10:
            print(str(z)+' ',end='')

def isPrime(n):
    for x in range(2, int(n**0.5+2)):
        if n%x==0:
            return False
    return True

n = int(input("输入一个正整数:"))
i = 0
while i<10:
    n += 1
    if isPrime(n):
        m = int(str(n)[::-1])
        if n!=m and isPrime(m):
            print(n)
            i += 1

输出结果

输入一个正整数:13
17
31
37
71
73
79
97
107
113
149

>>> def is_prime(n):
	if n ==2 or n == 3:
		return True
	elif n < 2 or n%2 == 0:
		return False
	else:
		for i in range(2, int(pow(n,1/2)+1)):
			if n%i == 0:
				return False
		return True

	
>>> c = 0
>>> k = int(input('请输入反素数的下限:'))
请输入反素数的下限:10
>>> while c < 10:
	k += 1
	if is_prime(k):
		kk = int(str(k)[::-1])
		if is_prime(kk):
			print(k, kk)
			c += 1

			
11 11
13 31
17 71
31 13
37 73
71 17
73 37
79 97
97 79
101 101

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y