Python检查一个N位数是否是阿姆斯特朗数

2022-05-03 00:00:00 检查 位数 姆斯

在本例中,您将学习检查一个整数n是否是阿姆斯特朗数。
一个正整数如果满足以下条件,则被称为阿姆斯特朗数:

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

如果阿姆斯特朗数为3位,则每位数的立方数之和等于该数本身。例如:

153 = 1*1*1 + 5*5*5 + 3*3*3  // 153 是一个阿姆斯特朗数

源代码: 检查阿姆斯特朗号码(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 的值,然后再次运行以测试它。

相关文章