请编写一个函数rev(n),可以返回n的反序数。反序数是倒序每一位数得到的数,例如123反序数是321。再编写一个函数isprime(n),可以判断n是否为素数,是则返回True,不是则返回False。利用这两个函数找出三位数中所有的对称素数。对称素数是一对不同的反序数同为素数,例如107和701。一行显示一对对称素数,按前小后大的顺序显示,以1个空格分隔两个数,不要重复显示。
时间: 2023-06-16 16:03:51 浏览: 164
Java中统计字符个数以及反序非相同字符的方法详解
可以按照以下方式实现:
```python
def rev(n):
return int(str(n)[::-1])
def isprime(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
for i in range(100, 1000):
r = rev(i)
if r > i and isprime(i) and isprime(r):
print(i, r)
```
这个程序首先定义了两个函数`rev`和`isprime`,分别用于求反序数和判断素数。然后程序对所有三位数进行遍历,对于每个数,如果它的反序数大于它自己并且它本身和反序数都是素数,那么就输出这一对对称素数。注意输出时需要按前小后大的顺序,因此要判断反序数是否大于原数。另外,由于对称素数是一对不同的反序数同为素数,因此只需要输出其中一个就可以了,不要重复显示。
阅读全文