输入一个数n,以空格分隔输出n以内所有的回文素数,若n是小数或者负数,则输出"illega input"
时间: 2024-03-23 10:42:37 浏览: 19
好的,我可以帮你解决这个问题。为了实现这个功能,我们需要先编写两个函数,一个用于判断一个数是否为素数,另一个用于判断一个数是否为回文数。下面是代码实现:
```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 is_palindrome(n):
s = str(n)
return s == s[::-1]
```
有了这两个函数,我们就可以实现对输入的数进行判断并输出回文素数了。代码如下:
```python
n = input("请输入一个正整数:")
if not n.isdigit() or float(n) < 0:
print("illegal input")
else:
n = int(float(n))
for i in range(2, n + 1):
if is_prime(i) and is_palindrome(i):
print(i, end=" ")
```
当输入一个正整数时,程序会输出该数以内所有的回文素数。如果输入小数或负数,则会输出"illegal input"。你可以尝试输入不同的数进行测试。