寻找1000以内的无暇素数, 无暇素数是指这个数自身为素数, 其逆序数也是素数, 每行输出5个
时间: 2024-06-04 18:09:06 浏览: 148
以下是1000以内的无暇素数:
2 3 5 7 11
13 17 31 37 71
73 79 97 107 113
149 157 167 179 199
311 337 347 359 389
701 709 733 739 743
751 761 769 907 937
注意:由于逆序数的定义,无暇素数只存在于十进制下的素数中,因此这里的“逆序数”指的是该数的十进制下的逆序数,而不是其他进制下的逆序数。
相关问题
寻找1000以内的无暇素数, 无暇素数是指这个数自身为素数, 其逆序数也是素数, 每行输出5个.
下面是1000以内的无暇素数:
2 3 5 7 11
13 17 31 37 71
73 79 97 107 113
131 199 311 337 373
379 383 389 701 709
733 739 761 769 907
937 941 953 967 971
注意:在这个列表中,每个数字都是一个素数,并且它的逆序也是一个素数。
编程寻找1000以内的无暇素数, 无暇素数是指这个数自身为素数, 其逆序数也是素数, 每行输出5个
以下是 Python 3 的代码实现:
```python
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
def reverse_num(n):
return int(str(n)[::-1])
result = []
for i in range(1, 1001):
if is_prime(i) and is_prime(reverse_num(i)):
result.append(i)
if len(result) == 5:
print(*result)
result = []
if len(result) > 0:
print(*result)
```
首先定义了两个函数,`is_prime` 用来判断一个数是否为素数,`reverse_num` 用来翻转数字。然后从 1 到 1000 遍历每一个数,如果这个数本身和它的翻转数都是素数,就将它加入结果列表中,每累计到 5 个就打印一行输出。最后需要判断一下结果列表中是否还有剩余的数没有输出。
阅读全文