Armstrong数字(也称为自恋数字、水仙花数)是指一个n位数,其各位数字的n次方之和等于它本身。例如,153是一个3位数的Armstrong数字,因为 (1^3 + 5^3 + 3^3 = 153)。
假设我们有一个整数列表,我们需要从中筛选出所有的Armstrong数字。以下是一个Python示例代码:
def is_armstrong(num):
# 将数字转换为字符串,以便逐位处理
str_num = str(num)
n = len(str_num)
# 计算各位数字的n次方之和
sum_of_powers = sum(int(digit) ** n for digit in str_num)
# 判断是否为Armstrong数字
return sum_of_powers == num
def filter_armstrong_numbers(numbers):
return [num for num in numbers if is_armstrong(num)]
# 示例列表
numbers = [153, 370, 371, 407, 123, 456, 789]
armstrong_numbers = filter_armstrong_numbers(numbers)
print("Armstrong numbers in the list:", armstrong_numbers)
通过上述代码和解释,你可以轻松地从一个列表中筛选出所有的Armstrong数字。
领取专属 10元无门槛券
手把手带您无忧上云