用python看一个三位数是否是水仙花数
时间: 2024-11-09 10:25:17 浏览: 28
在Python中,判断一个三位数是否是水仙花数(即各位数字立方之和等于原数本身),可以创建一个简单的函数来完成这个任务。以下是一个示例函数:
```python
def is_lychrel_number(num):
# 将输入转换为字符串以便提取每一位数字
digits = [int(digit) for digit in str(num)]
# 检查是否为一位数
if len(digits) != 3:
return False
# 计算每一位的立方和
sum_of_cubes = sum(digit ** 3 for digit in digits)
# 如果一开始的数字等于它的立方和,那么不是水仙花数
if num == sum_of_cubes:
return False
# 遍历最多10次,因为最多需要9步才能达到水仙花状态
for _ in range(10):
sum_of_cubes, num = num, sum_of_cubes
# 更新num,将其替换为新的立方和
num_str = str(sum_of_cubes)
num = int(''.join(map(str, [num_str[i] for i in range(3) if i != 0])) + num_str[0])
return num == sum_of_cubes
# 测试数字
test_number = 153
if is_lychrel_number(test_number):
print(f"{test_number} 是水仙花数")
else:
print(f"{test_number} 不是水仙花数")
# 使用该函数检查其他三位数...
```
这个函数首先将输入的三位数转换为列表形式,然后依次计算每个位的立方,如果一开始的数值等于立方和则直接返回False。接着,它会进行一系列迭代更新立方和,直到形成一个循环或达到最大步数(通常是10步)。如果最后形成的数字还是原来的立方和,那说明这个数就是水仙花数。
阅读全文