python 若将某素数的各位数顺序颠倒后得到的数仍是素数,则此数称为可逆素数。当输入任意一个不超过3位的数值n时,求小于等于n的所有可逆素数。
时间: 2023-06-06 20:08:45 浏览: 622
可以回答这个问题。以下是解答:
首先,我们需要判断一个数是否为素数。素数是只能被1和自己整除的正整数,可以通过试除法来判断。具体地,我们可以从2开始向上逐个尝试将该数除掉,若存在一个约数,则该数不是素数;否则,该数是素数。
接着,我们遍历所有不超过n的正整数,对于每个数,判断其是否为可逆素数。具体地,我们可以将该数转化成字符串,然后将字符串反转,再将反转后的字符串转成整数,判断该整数是否为素数。如果都满足,则该数是可逆素数。
实现如下:
```
def is_prime(num):
if num <= 1:
return False
for i in range(2, num):
if num % i == 0:
return False
return True
def is_reversible(num):
num_str = str(num)
reversed_str = num_str[::-1]
reversed_num = int(reversed_str)
return is_prime(reversed_num)
def find_reversible_primes(n):
primes = []
for i in range(2, n + 1):
if is_prime(i) and is_reversible(i):
primes.append(i)
return primes
n = int(input("请输入n: "))
primes = find_reversible_primes(n)
print("小于等于n的所有可逆素数为:", primes)
```
例如,当输入n为100时,输出结果为:
```
请输入n: 100
小于等于n的所有可逆素数为: [13, 17, 31, 37, 71, 73, 79, 97]
```
阅读全文