如何用Python做反素数??
问题描述:
反素数是指一个数将其逆向拼写后也是素数的非回文数。例如,17和71都是素数,也都不是回文数。编写程序显示前100个反素数。每行显示10个数字,并且准确对齐。要求:使用函数实现反素数的判断。
答
def isPrime(n):
for i in range(2, int(n **0.5) + 1):
if n % i == 0:
return False
return True
def loop(n):
return str(n) == str(n)[::-1]
ii = 10
cou =0
s = set()
result = []
while True:
ii += 1
ix = int(str(ii)[::-1])
if isPrime(ii) and isPrime(ix) and ix not in s and not loop(ii):
cou += 1
s.add(ii)
s.add(ix)
result.append((ii, ix))
if cou == 100:break
ii = 0
for i,k in enumerate(result):
print (str(k).rjust(14), end='')
if (i + 1) % 10 == 0:print()