水仙花数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身,最著名的水仙花数是 153。数学上将这种数称为阿姆斯特朗数。
Python 代码可以用简单的循环来计算一个 n 位数的各个位数上的数字的 n 次幂之和,如果等于这个数本身,则该数就是水仙花数。
我们可以通过一个函数来找出范围内的所有水仙花数,该函数接受两个参数 start
和 end
分别表示范围内的起始值和结束值,代码如下:
def is_narcissistic_number(num): n = len(str(num)) return num == sum(int(digit) ** n for digit in str(num)) def find_narcissistic_numbers(start, end): return [num for num in range(start, end+1) if is_narcissistic_number(num)] # 示例:找出 100 到 999 之间的水仙花数 narcissistic_numbers = find_narcissistic_numbers(100, 999) print(narcissistic_numbers)
在上面的代码中,我们定义了两个函数:
用于判断一个数是否为水仙花数,该函数首先计算这个数的位数 n
,然后计算每个位上的数字的 n
次幂之和,最后判断这个和是否等于原数。
用于在给定的范围内查找所有的水仙花数。利用列表推导式遍历范围内的所有数,调用 is_narcissistic_number()
函数判断是否为水仙花数,如果是则将其添加到结果列表中。
通过本文,我们了解了水仙花数的定义,学习了如何用 Python 来判断一个数是否为水仙花数,并在给定范围内查找所有的水仙花数。感谢您的阅读,如果您有任何疑问或意见,请随时在评论中提出。
如果您对本文内容感兴趣,不妨点个赞,或者分享给您的朋友。如果您希望获取更多关于 Python 编程的知识,可以关注我们的公众号或网站,我们会定期发布有趣的 Python 相关内容。再次感谢您的观看,祝您生活愉快!