用python写一段代码,打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。 例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
时间: 2023-07-19 14:31:14 浏览: 87
好的,以下是用 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)
```
输出结果为:
```
153
370
371
407
```
代码解释:
这段代码使用了 Python 的基本语法和算术运算符。我们使用 `for` 循环来遍历所有的三位数,即从 100 到 999。对于每个数字,我们使用 `while` 循环来计算它的各位数字的立方和,即将该数字除以 10 取余数得到最低位数字,然后将该数字除以 10 取整得到剩下的数字,重复上述过程直到所有的位数都处理完毕,最后比较原数字和各位数字的立方和是否相等,如果相等,则打印出该数字,即为“水仙花数”。
相关问题
用Python打印出所有的“水仙花数”,所谓”水仙花数”是指一个三位数,其各位数字立方和等于该数本身。 例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
在Python中,我们可以编写一个简单的函数来找出所有的“水仙花数”。这个函数会遍历从100到999的所有三位数,计算它们各个位数的立方之和,如果相等,则认为是“水仙花数”。以下是相应的代码:
```python
def find_water_lilies():
for num in range(100, 1000): # 遍历三位数范围
hundreds = num // 100 # 取百位
tens = (num // 10) % 10 # 取十位
ones = num % 10 # 取个位
# 计算各位数字的立方和
sum_of_cubes = hundreds**3 + tens**3 + ones**3
# 检查是否是水仙花数
if sum_of_cubes == num:
print(num)
# 调用函数找到水仙花数
find_water_lilies()
```
当你运行这段代码,它会打印出所有符合条件的“水仙花数”。
6. 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。python
在Python中,我们可以编写一个简单程序来找出所有的水仙花数。水仙花数的特点是每个位上的数字分别立方后相加等于原数。我们只需要遍历从100到999的所有整数,然后检查是否满足条件即可。以下是Python代码实现:
```python
def is narcissistic_number(num):
digits = [int(digit) for digit in str(num)]
return num == sum([digit**3 for digit in digits])
for i in range(100, 1000): # 只需考虑三位数
if is_narcissistic_number(i):
print(i)
```
这段代码首先定义了一个辅助函数`is_narcissistic_number()`,它将输入的数字拆分成各个位上的数字,并计算它们的立方和。如果和等于原始数字,那么这个数字就是水仙花数。
然后,我们通过一个for循环遍历100到999之间的每一个数字,使用`is_narcissistic_number()`函数判断是否是水仙花数,如果是就打印出来。
阅读全文