【问题描述】 所谓"绝对素数"是指具有如下性质的素数:一个素数,当它的各位数字逆序排列,形成的整数仍为素数,这样的数称为绝对素数。例如,11,79,389是素数,其各位数字对换位置后分别为11,97,983仍为素数,因此这三个素数均为绝对素数。编写函数absolute(int x),判断一个整数是否为绝对素数,如果x是绝对素数则返回1,否则返回0。编写程序,接收控制台输入的两个整数a,b。调用absolute函数输出所有a到b之间(包括a和b)的绝对素数 【输入形式】 控制台输入两个整数a和b,以空格分隔。 【输出形式】 输出有若干行,每行有一个a和b之间的绝对整数。输出各行上的数字不重复,且从小至大依次按序输出。
时间: 2023-10-06 12:08:03 浏览: 184
以下是Python3的代码实现:
```python
def is_prime(num):
if num < 2:
return False
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
def absolute(x):
if not is_prime(x):
return False
rev_x = int(str(x)[::-1])
return is_prime(rev_x)
a, b = map(int, input().split())
res = []
for i in range(a, b+1):
if absolute(i):
res.append(i)
res = list(set(res))
res.sort()
for i in res:
print(i)
```
首先定义了两个函数,一个用来判断一个数是否为素数,另一个用来判断一个数是否为绝对素数。然后从控制台输入a和b,从a到b遍历每个数,判断是否为绝对素数,如果是则加入结果列表。最后去重、排序并输出结果列表中的数字。
阅读全文