帮我用python写一个水仙花数
时间: 2023-02-20 11:59:19 浏览: 81
好的,我可以为您写一个判断水仙花数的代码。
```
def is_narcissistic_number(number):
num_str = str(number)
num_len = len(num_str)
sum = 0
for i in range(num_len):
sum += int(num_str[i]) ** num_len
return sum == number
for i in range(100, 1000):
if is_narcissistic_number(i):
print(i)
```
这段代码会打印出所有三位数的水仙花数。
相关问题
帮我用python写一段水仙花数
当一个n位正整数等于其各个位数上的数字的n次幂之和时,我们称其为水仙花数。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。下面是用Python编写的一个程序来找出指定范围内的水仙花数:
```python
lower = int(input("请输入范围下限:"))
upper = int(input("请输入范围上限:"))
print("水仙花数在范围", lower, "和", upper, "之间是:")
for num in range(lower, upper + 1):
# 将数字转换成字符串,并计算每个位上数字的n次方之和
sum = 0
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** len(str(num))
temp //= 10
# 如果和等于原数字,则打印该数字
if num == sum:
print(num)
```
你可以根据需要输入范围下限和上限,程序将会输出该范围内的所有水仙花数。
用python写一个水仙花数
水仙花数是指一个三位数,它的各位数字的立方和等于它本身,例如153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。以下是用Python写一个水仙花数的代码:
```python
for i in range(100, 1000):
sum = 0
temp = i
while temp > 0:
digit = temp % 10
sum += digit ** 3
temp //= 10
if i == sum:
print(i)
```
代码解释:
- 用for循环从100到999遍历所有三位数。
- 定义sum变量记录每个数的各位数字的立方和。
- 用temp变量暂时保存当前的数,以便处理各位数字。
- 使用while循环将temp的每一位数字取出并计算其立方和。
- 如果当前数等于其各位数字的立方和,则打印出来。
阅读全文