在指定范围内查找阿姆斯特朗数的Python程序

2022-05-03 00:00:00 查找 范围内 姆斯

一个正整数如果满足一下条件则被称为阿姆斯特朗数:

abcd... = a^n + b^n + c^n + d^n + ...

比如说:

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

代码:查找100-2000之间的所有阿姆斯特朗数:

# 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)

输出如下:

153
370
371
407
1634

上面的代码,变量 lower 设置为下限 100,变量 upper 设置为上限 2000。 使用 for 循环从变量 lower 到 upper 进行循环迭代。 在迭代中,lower 的值每次增加 1,并检查它是否是 阿姆斯特朗数。

您可以通过更改变量 lower 和 upper 来更改范围并进行测试。 注意,变量lower 应该低于upper,这样程序才能正常工作。

相关文章