已知回文数是指一个正序(从左向右)和倒序(从右向左)读都是一样的整数,请输出小于等于整数N的所有既是回文数又是素数的数字。输入格式 输入仅一行,包含一个整数N。 输出格式 输出可能有多行,包含所有小于等于N的回文素数
时间: 2024-03-27 22:39:49 浏览: 61
c语言编写的趣味菜单
好的,我可以再给你一个 Python 3 的实现,但这次我将实现一个更加简洁的方法,使用列表推导式和 lambda 表达式:
```python
def is_palindrome(num):
s = str(num)
return s == s[::-1]
def is_prime(num):
if num < 2:
return False
return all(num % i != 0 for i in range(2, int(num ** 0.5) + 1))
N = int(input())
res = [num for num in range(2, N + 1) if is_palindrome(num) and is_prime(num)]
for num in res:
print(num)
```
函数 `is_palindrome` 和 `is_prime` 的实现与之前的相同。列表推导式 `[num for num in range(2, N + 1) if is_palindrome(num) and is_prime(num)]` 返回小于等于整数 `N` 的所有既是回文数又是素数的数字。最后,遍历该列表并输出每个数字。
你可以将以上代码保存为一个 Python 文件,然后在命令行中运行该文件,例如:
```
python palindrome_prime_numbers.py
```
程序会等待你输入一个整数 `N`,然后输出所有符合条件的数字。
阅读全文