如何用Python做反素数??

如何用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()