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