描述一个数如果从左往右读和从右往左读数字是相同的,则称这个数是回文数,如121,1221,15651都是回文数。给定位数n,找出所有既是回文数又是素数的n位十进制数。(注:不考虑超过整型数范围的情况)。输入位数n,其中1<=n<=9。输出第一行输出满足条件的素数个数。
第二行按照从小到大的顺序输出所有满足条件的素数,两个数之间用一个空格区分。样例输入1样例输出4
2 3 5 7
def isPrime(n):
if n==1: return False
for i in range(2,n):
if n%i==0: return False
return True
def isPalindrome(n):
t = str(n)
if t==t[::-1]: return True
return False
def PalinPrime(n):
pp = []
count = 0
for i in range(10**(n-1),10**n):
if isPalindrome(i) and isPrime(i):
count += 1
pp.append(i)
print(count)
print(' '.join(list(map(str,pp))))
PalinPrime(1)
PalinPrime(2)
PalinPrime(3)
4
2 3 5 7
1
11
15
101 131 151 181 191 313 353 373 383 727 757 787 797 919 929