Python代码 在线执行

Python 程序:检查阿姆斯特朗数

/examples/armstrong-number

在此示例中,您将学习检查 n 位整数是否是阿姆斯特朗数。

要理解此示例,您应该了解以下 [Python 编程]( "Python tutorial")主题:


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

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

对于 3 位的阿姆斯特朗数字,每个数字的立方数之和等于数字本身。 例如:

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

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

# 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的值,然后再次运行以对其进行测试。