从键盘里输入一个数字,判断是否是水仙花数字
时间: 2024-10-15 12:16:46 浏览: 30
水仙花数字是指那些所有位数的立方和等于原数本身的三位数。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。判断一个数字是否为水仙花数字的步骤通常是这样的:
1. 输入用户提供的数字n。
2. 将n分解成百位、十位和个位三个数,例如假设n=123,则百位a为1,十位b为2,个位c为3。
3. 计算每个位置的立方值,即a^3, b^3, c^3。
4. 检查这三个立方数之和是否等于原始数字n。
以下是Python的一个简单示例:
```python
def is_lychrel_number(n):
digits = [int(d) for d in str(n)]
sum_of_cubes = sum(i**3 for i in digits)
# 如果第一次计算就相等,不是水仙花数,直接返回False
if sum_of_cubes == n:
return False
# 继续循环,最多尝试100次,以防数字特别大
for _ in range(100):
sum_of_cubes, n = n, sum_of_cubes
# 判断当前的sum_of_cubes是否与原始数字相等,如果相等则是水仙花数,返回True
if sum_of_cubes == n:
return True
return False
# 用户输入测试
number = int(input("请输入一个三位数:"))
result = is_lychrel_number(number)
if result:
print(f"{number} 是水仙花数字")
else:
print(f"{number} 不是水仙花数字")
```
阅读全文