用python识别一个数是否是水仙花数
时间: 2024-11-20 10:43:08 浏览: 11
水仙花数是一种特殊的整数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。
在Python中,我们可以编写一个函数来检查一个数是否是水仙花数。以下是简单的实现步骤:
```python
def is_armstrong_number(num):
# 将数字转换为字符串以便于操作
str_num = str(num)
# 获取数字的位数
length = len(str_num)
# 计算每个位数的立方和
sum_of_cubes = sum(int(digit) ** length for digit in str_num)
# 检查和是否等于原数
return num == sum_of_cubes
# 示例用法
num = int(input("请输入一个数字:"))
if is_armstrong_number(num):
print(f"{num} 是水仙花数")
else:
print(f"{num} 不是水仙花数")
```
相关问题
用Python识别水仙花数
水仙花数是指一个三位数,其各位数字的立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。以下是Python代码实现:
```python
for num in range(100, 1000):
sum = 0
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** 3
temp //= 10
if num == sum:
print(num)
```
这段代码会输出所有的三位水仙花数。
水仙花数python判定
### 使用Python编写判断水仙花数的程序
为了实现这一功能,可以定义一个函数 `is_armstrong` 来检测给定的整数是否为水仙花数。该方法适用于任意长度的数字而不仅限于三位数。
```python
def is_armstrong(number):
# 将数字转换成字符串以便逐位处理
digits = str(number)
num_digits = len(digits)
# 计算每位数字的num_digits次方之和
sum_of_powers = sum([int(digit) ** num_digits for digit in digits])
# 判断计算的结果是否等于原始输入number
return number == sum_of_powers
```
对于想要找出特定区间内所有的水仙花数的情况,则可以通过遍历指定范围内每一个数值并应用上述逻辑来完成:
```python
def find_all_armstrong(start=1, end=999):
armstrong_numbers = []
for i in range(start, end + 1):
if is_armstrong(i):
armstrong_numbers.append(i)
return armstrong_numbers
```
这段代码能够有效地识别出[start,end]闭区间的全部水仙花数,并将其存储在一个列表中返回[^1]。
当仅考虑三位数时(即n=3),可以直接利用上面提到的方法进行验证;而对于更广泛的场景——比如四位以上的自恋数——同样适用此通用解决方案[^2]。
阅读全文