什么是回文素数?
回文素数指的是,对一个整数n从左向右和从右向左读其数值都相同且n为素数,则称整数n为回文素数。比如:11,101等就是回文素数。
如何求出所有不超过1000的回文素数?
可以采用的方法是穷举法。对1000以内的每一个整数n进行考察,判断n是否为回文数。如果n是回文数,再判断它是否为素数,对于既是回文数也是素数的整数n就是我们要求的回文素数,将其打印输出即可。
下面直接上代码:
########################
#先判断参数n是否为素数
def fun(n):
for i in range(2, (n-1)//2):
if n % i == 0: # 偶数不是素数
return 0
return 1 # 返回1是素数
if __name__=="__main__":
print("1000以内的回文素数:")
for i in range(0, 9+1): # 穷举第一位
for j in range(0, 9+1): # 穷举第二位
for k in range(0, 9+1): # 穷举第三位
n = i * 100 + j * 10 + k # 计算组成的整数
m = i + j * 10 + k * 100 # 计算对应的反序数
if i == 0 and j == 0: # 处理整数的前两位为0的情况
m = m // 100
elif i == 0: # 处理整数的第一位为0的情况
m = m // 10
if n > 10 and n == m and fun(n): # 若大于10且为回文数则输出
print("%d\t" %n, end="")
########################
执行结果如下:
1000以内的回文素数:
11 101 131 151 181 191 313 353 373 383 727 757 787 797 919 929
________________END______________
网友评论