用python设计函数,输入参数你,判断该数是否为水仙花数
时间: 2024-10-21 18:04:13 浏览: 19
Python水仙花数
5星 · 资源好评率100%
在Python中,可以设计一个名为`is_lychrel_number`的函数,用于判断一个整数是否是水仙花数。水仙花数是指一个n位数,其各位数字立方之和等于原数本身的数。例如,153是个水仙花数,因为1^3 + 5^3 + 3^3 = 153。下面是函数的实现:
```python
def is_lychrel_number(n):
steps = 0
while True:
digits = [int(digit) for digit in str(n)]
sum_of_cubes = sum(digit ** 3 for digit in digits)
n = sum_of_cubes
steps += 1
if n == 1 or n == 5832: # 水仙花数的特殊情况,1步就到1或直接循环回到5832
return False, steps if n != 1 else None # 1步到1不是水仙花数
if n in [153, 370, 371]: # 水仙花数列表内的数,不再继续判断
return True, steps
if steps > 50: # 防止无限循环,超过50步则认为不是水仙花数
return False, steps
# 示例用法
number = 123
result = is_lychrel_number(number)
if result[0]:
print(f"{number} 是水仙花数,经过了 {result[1]} 步")
else:
print(f"{number} 不是水仙花数")
阅读全文