用Python代码输入一个三位数,判断该数是否是水仙花数(如153=1的三次方+5的三次方+3的三次方)
时间: 2023-04-04 14:04:27 浏览: 76
您好,我可以回答这个问题。以下是Python代码:
num = int(input("请输入一个三位数:"))
sum = 0
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** 3
temp //= 10
if num == sum:
print(num, "是水仙花数")
else:
print(num, "不是水仙花数")
相关问题
编写一个程序,用python函数解决问题:用于判断输入的一个三位数是否是水仙花数。所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
好的,这是一个编程问题,我可以为您提供解答。
以下是一个 Python 函数,可以判断一个三位数是否为水仙花数:
```python
def is_narcissistic_number(num):
"""判断一个三位数是否为水仙花数"""
if not isinstance(num, int) or num < 100 or num > 999:
# 判断参数是否为三位数
return False
# 计算数字各位上的立方和
digit_sum = sum(int(digit) ** 3 for digit in str(num))
# 判断是否为水仙花数
return digit_sum == num
```
使用方法如下:
```python
>>> is_narcissistic_number(153)
True
>>> is_narcissistic_number(370)
True
>>> is_narcissistic_number(123)
False
```
希望能够帮到您!
用python写一段代码,打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。 例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
好的,以下是用 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 取整得到剩下的数字,重复上述过程直到所有的位数都处理完毕,最后比较原数字和各位数字的立方和是否相等,如果相等,则打印出该数字,即为“水仙花数”。