用于检查阿姆斯特朗数的 Python 程序

要理解这个例子,你应该具备以下 Python 编程 主题的知识


如果一个正整数是 n 阶阿姆斯特朗数,则

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

对于一个三位数的阿姆斯特朗数,每个数字的立方和等于其本身。例如

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

源代码:检查阿姆斯特朗数(三位数)

# Python program to check if the number is an Armstrong number or not

# take input from the user
num = int(input("Enter a number: "))

# initialize sum
sum = 0

# find the sum of the cube of each digit
temp = num
while temp > 0:
   digit = temp % 10
   sum += digit ** 3
   temp //= 10

# display the result
if num == sum:
   print(num,"is an Armstrong number")
else:
   print(num,"is not an Armstrong number")

输出 1

Enter a number: 663
663 is not an Armstrong number

输出 2

Enter a number: 407
407 is an Armstrong number

在这里,我们向用户请求一个数字并检查它是否是阿姆斯特朗数。

我们需要计算每个数字的立方和。因此,我们将和初始化为 0,并使用模运算符 % 获取每个数字。一个数字除以 10 的余数是该数字的最后一位。我们使用指数运算符计算立方。

最后,我们将和与原始数字进行比较,如果它们相等,则得出结论它是阿姆斯特朗数。


源代码:检查 n 位阿姆斯特朗数

num = 1634

# Changed num variable to string, 
# and calculated the length (number of digits)
order = len(str(num))

# initialize sum
sum = 0

# find the sum of the cube of each digit
temp = num
while temp > 0:
   digit = temp % 10
   sum += digit ** order
   temp //= 10

# display the result
if num == sum:
   print(num,"is an Armstrong number")
else:
   print(num,"is not an Armstrong number")

您可以更改源代码中 num 的值并再次运行以进行测试。


另请阅读

在我们结束之前,让我们来检验一下你对这个例子的理解!你能解决下面的挑战吗?

挑战

编写一个函数来计算给定数字中所有数字的和。

  • 例如,对于输入 12345,输出应该是 15
你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战