python中以最简单的方式求三位数的水仙花数
时间: 2024-10-08 13:24:27 浏览: 26
在Python中,水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。以下是用最简单的方式编写一个函数来寻找所有三位水仙花数:
```python
def find_water_lily_numbers():
# 遍历100到999范围内的所有三位数
for num in range(100, 1000):
# 将数字转换为字符串,便于按位计算
digits = [int(digit) for digit in str(num)]
# 计算每个位上的立方和
cube_sum = sum([digit**3 for digit in digits])
# 如果立方和等于原数,则找到一个水仙花数
if cube_sum == num:
print(num)
# 调用函数找出水仙花数
find_water_lily_numbers()
```
当你运行这个程序,它会打印出所有的三位水仙花数。
相关问题
Python6位数的水仙花程序
在Python中,水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。如果你想编写一个函数来检查一个六位数是否为水仙花数,你需要首先将这个六位数分解成三个独立的两位数,然后分别计算这三个数字的立方和。
以下是一个简单的Python程序,它实现了这个功能:
```python
def is_hydrangea_number(num):
# 将六位数转换为字符串,并提取每一位
num_str = str(num)
first_two_digits = int(num_str[:2])
second_two_digits = int(num_str[2:4])
# 计算每个部分的立方和
cube_of_first_two = first_two_digits ** 3
cube_of_second_two = second_two_digits ** 3
# 检查剩下的最后两个数字
last_two_digits = int(num_str[-2:])
total_sum = cube_of_first_two + cube_of_second_two + last_two_digits
# 如果总和等于原始数,就是水仙花数
return total_sum == num
# 测试几个例子
test_numbers = [123456, 987654, 153]
for number in test_numbers:
print(f"{number} 是水仙花数吗? {is_hydrangea_number(number)}")
Python用函数判断水仙花数
在Python中,水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。判断一个数是否为水仙花数,可以编写一个函数来实现这个计算过程。下面是一个简单的函数示例:
```python
def is_narcissistic_number(num):
# 将数字转换为字符串,便于提取每一位
str_num = str(num)
# 数字长度验证(只能是三位数)
if len(str_num) != 3:
return False
# 提取每一位数字并计算它们的立方和
digit_sums = sum(int(digit)**3 for digit in str_num)
# 比较立方和与原始数是否相等
return digit_sums == num
# 示例
print(is_narcissistic_number(153)) # 输出: True
```
这个`is_narcissistic_number`函数首先检查输入的数是否为三位数,然后对每个位数求立方并累加。如果最后的结果等于原数,则它是水仙花数,返回True;否则返回False。
阅读全文