问题描述:
所谓回文素数是指,对一个整数n从左向右和从右向左读结果值相同且是素数,即称为回文素数。
求不超过1000的回文素数。
分析:
构造判断素数的函数;
先筛选素数,再求出逆数,若相等则输出
代码
#素数判断函数
import math
def sushu(n):
for k in range(2,int(math.sqrt(n)+1)):
if n%k==0:
return False
return True
b=[]
for i in range(2,1000):
if sushu(i):
if int(str(i)[::-1])==i: #求一个数反过来的简便方法 将 str(i)[::-1] 化为int
b.append(i)
print b
#结果
[2, 3, 5, 7, 11, 101, 131, 151, 181, 191, 313, 353, 373, 383, 727, 757, 787, 797, 919, 929]
知识积累:
求列表的最大值 max(list)
删掉序号为 n 的元素:del list[ n ]
查找元素在列表中的序号: list.index( element )
判断元素是否在列表中: element in list ---->True or False
反向排列:list . reverse()