一个十进制数,如果是素数,而且它的各位数字和也是素数,则称之为“美素数”,如29,本身是素数,而且2+9 = 11也是素数,所以它是美素数。从键盘输入一系列正整数,输入以0结束。按输入顺序输出这些数中的美素数。数据保证输入序列中至少有1个美素数。
时间: 2023-04-22 11:05:06 浏览: 130
以下是一个Python的程序实现,可以完成你的要求:
```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 is_beautiful_prime(num):
if not is_prime(num):
return False
digit_sum = sum(map(int, str(num)))
return is_prime(digit_sum)
nums = []
while True:
n = int(input())
if n == 0:
break
nums.append(n)
for num in nums:
if is_beautiful_prime(num):
print(num)
```
程序中使用了两个辅助函数,分别是 `is_prime` 和 `is_beautiful_prime`。`is_prime` 函数用于判断一个数字是否为素数,`is_beautiful_prime` 函数则用于判断一个数字是否为美素数。
主函数中首先通过循环读取输入的数字,并将其存储在一个列表 `nums` 中,当读取到输入为 0 的数字时,退出循环。
接下来对列表中的每个数字进行判断,如果是美素数,则将其输出。
需要注意的是,输入序列中至少有 1 个美素数,因此程序中并没有处理输入非正整数的情况。如果需要进行错误处理,可以在输入数字的地方添加相应的判断逻辑。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)