如果一个正整数是 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 的值并再次运行以进行测试。
另请阅读