# Python 程序：查找间隔内的阿姆斯特朗数

> 原文： [https://www.programiz.com/python-programming/examples/armstrong-interval](https://www.programiz.com/python-programming/examples/armstrong-interval)

#### 查找两个整数之间的所有阿姆斯特朗数的示例。 为了解决这个问题，我们使用了嵌套循环和`if`语句。

要理解此示例，您应该了解以下 [Python 编程](/python-programming "Python tutorial")主题：

*   [Python `if...else`语句](/python-programming/if-elif-else)
*   [Python `while`循环](/python-programming/while-loop)

* * *

一个正整数称为阿姆斯特朗数`n`，如果

```py
abcd... = an + bn + cn + dn + ...
```

例如，

```py
153 = 1*1*1 + 5*5*5 + 3*3*3  // 153 is an Armstrong number.

```

访问此页面以了解如何[在 Python](/python-programming/examples/armstrong-number "Python Armstrong Number") 中检查数字是否为阿姆斯特朗数。

## 源代码

```py
# Program to check Armstrong numbers in a certain interval

lower = 100
upper = 2000

for num in range(lower, upper + 1):

   # order of number
   order = len(str(num))

   # initialize sum
   sum = 0

   temp = num
   while temp > 0:
       digit = temp % 10
       sum += digit ** order
       temp //= 10

   if num == sum:
       print(num) 
```

**输出**

```py
153
370
371
407
1634 
```

在这里，我们在变量`lower`中设置了下限 100，在变量`upper`中设置了上限 2000。 我们已经使用循环从变量`lower`迭代到`upper`。 在迭代中，将`lower`的值增加 1，并检查其是否为阿姆斯特朗数。

您可以通过更改变量`lower`和`upper`来更改范围并进行测试。 注意，变量`lower`应当小于`upper`，此程序才能正常工作。