程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

水仙花数python数所有的。新手必看

hfteth 2025-04-07 14:33:18 技术文章 12 ℃

要找出所有的水仙花数(阿姆斯特朗数),可以使用以下Python代码。水仙花数是指一个n位数,其各位数字的n次方之和等于该数本身。


### 代码实现

```python

# 寻找所有水仙花数的通用解法

for num in range(1, 100000):

n = len(str(num))

sum_of_powers = sum(int(digit) ** n for digit in str(num))

if sum_of_powers == num:

print(num)

```


### 输出结果

```

1

2

3

4

5

6

7

8

9

153

370

371

407

1634

8208

9474

54748

92727

93084

```


### 解释

1. **遍历范围**:代码检查1到99999之间的所有数字。可以根据需要调整上限。

2. **计算位数**:将数字转换为字符串以确定其位数`n`。

3. **求各位的n次方和**:将每个数字的每一位取n次方后求和。

4. **判断水仙花数**:若和等于原数,则输出该数。


此方法能够找到包括三位数(如153、370等)和更高位数(如四位的9474,五位的54748等)在内的所有水仙花数。

Tags:

最近发表
标签列表