使用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
这些就是所有的三位数的水仙花数。


