随机输人若干个不超过2位的正整数(输入-1表示输人结束),找出其中所有同构数并排序输出。(正整数n若是它平方数的尾部,则称n为同构数。
时间: 2023-11-28 16:49:11 浏览: 106
以下是 Python 代码实现:
```python
def isomorphic_number(n):
square = str(n ** 2)
digits = str(n)
return square.endswith(digits)
numbers = []
while True:
n = int(input())
if n == -1:
break
numbers.append(n)
isomorphic_numbers = [n for n in numbers if isomorphic_number(n)]
isomorphic_numbers.sort()
print(isomorphic_numbers)
```
我们定义了一个 `isomorphic_number()` 函数来判断一个数是否是同构数。在主程序中,我们不断输入正整数,直到输入 -1 表示结束。我们将所有输入的正整数存储在一个列表 `numbers` 中。接下来,我们使用列表推导式和 `isomorphic_number()` 函数来找出所有的同构数,存储在列表 `isomorphic_numbers` 中。最后,我们对 `isomorphic_numbers` 列表进行排序并输出即可。
阅读全文