帮我写一段Python代码,找出1-1000000的水仙花数
时间: 2023-11-21 13:01:07 浏览: 122
当一个 n 位正整数 (n≥3) 等于其各位数字的 n 次方之和时,我们称其为Armstrong数,也被称为水仙花数。例如 153 = 1^3 + 5^3 + 3^3,153就是一个水仙花数。
以下是Python代码,可以找出1-1000000的所有水仙花数:
```python
for i in range(1, 1000000):
# 计算位数
n = len(str(i))
# 初始化变量
sum = 0
temp = i
# 循环计算各位数字的n次方之和
while temp > 0:
digit = temp % 10
sum += digit ** n
temp //= 10
# 判断是否为水仙花数
if i == sum:
print(i)
```
这段代码会输出所有的水仙花数,即:
```
1
2
3
4
5
6
7
8
9
153
370
371
407
1634
8208
9474
54748
92727
93084
548834
1741725
4210818
9800817
9926315
```
注意,这段代码比较耗时,需要一些时间才能运行完毕。
相关问题
写一个python代码找出所有的水仙花数。水仙花数是指一个3位数,每位上的数字的3次幂之和等于它本身(例奶:1**3+ 5**3+ 3**3 = 153)。
好的,这是一个简单的 Python 代码,用于查找所有的水仙花数:
```python
for num in range(100, 1000):
temp = num
sum = 0
while temp > 0:
digit = temp % 10
sum += digit ** 3
temp //= 10
if num == sum:
print(num)
```
上面这段代码将从 100 到 999 的所有整数进行迭代,并检查每个数字是否为水仙花数。对于每个数字,它将其每个数位的立方和计算出来,如果计算出来的结果等于该数字本身,那么它就是一个水仙花数,将其输出即可。
希望这个代码能够帮助到你!
帮我用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)
```
你可以根据需要输入范围下限和上限,程序将会输出该范围内的所有水仙花数。
阅读全文