请设计一个程序,其根据标准输入获得的一个自然数,打印所有大于10且小于该自然数的超完全数字不变数的倒序排列
时间: 2024-05-03 17:23:30 浏览: 79
湖南省计算机二级考试C语言程序设计题附答案.doc
超完全数字不变数的定义:
一个自然数的每个数位上的数字都是该数的因子,则该自然数为超完全数字不变数。
例如,12是超完全数字不变数,因为它的每个数位上的数字都是1、2、3、4、6、12的因子。
解题思路:
1. 首先判断一个数是否为超完全数字不变数,可以通过循环遍历该数的每个数位上的数字,判断是否为该数的因子。
2. 对于所有大于10且小于输入自然数的数,判断它是否为超完全数字不变数,如果是,则将其倒序排列后输出。
代码实现如下:
```python
def is_perfect(num):
for digit in str(num):
if digit == '0':
continue
if num % int(digit) != 0:
return False
return True
n = int(input())
for i in range(11, n):
if is_perfect(i):
print(str(i)[::-1])
```
运行示例:
输入:
```
30
```
输出:
```
21
12
```
阅读全文