使用for循环求出所有的水仙花数,用Python轻松实现并找出所有三位数的完美水仙花数


水仙花数(Narcissistic Number)也被称为阿姆斯特朗数(Armstrong Number),是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。例如,一个三位的水仙花数 153,它满足 1^3 + 5^3 + 3^3 = 153。

python

def is_narcissistic_number(num):

"""判断一个数是否是水仙花数"""

获取数字位数

n = len(str(num))

计算并返回结果

return num == sum(int(x) n for x in str(num))

def find_narcissistic_numbers(start, end):

"""找出指定范围内的水仙花数"""

narcissistic_numbers = []

for num in range(start, end + 1):

if is_narcissistic_number(num):

narcissistic_numbers.append(num)

return narcissistic_numbers

找出所有的三位数的水仙花数

three_digit_narcissistic_numbers = find_narcissistic_numbers(100, 999)

打印结果

for number in three_digit_narcissistic_numbers:

print(number)

在这个程序中,`is_narcissistic_number`函数用于判断一个数是否是水仙花数。它首先获取数字的位数,然后计算每个位上数字的 n 次幂之和,最后判断这个和是否等于原数。如果等于原数,那么这个数就是水仙花数,函数返回True,否则返回False。

`find_narcissistic_numbers`函数用于找出指定范围内的水仙花数。它使用一个for循环遍历指定范围内的所有数,对每个数调用`is_narcissistic_number`函数进行判断,如果是水仙花数,就将其添加到结果列表中。函数返回结果列表。

在程序的主部分,我们调用`find_narcissistic_numbers`函数,找出所有的三位数的水仙花数,并将结果打印出来。

运行这个程序,你会得到所有的三位数的水仙花数,例如:

153

370

371

407

这些就是所有的三位数的水仙花数。