水仙花数(Narcissistic number),也称为自恋数、自幂数、阿姆斯特朗数,是指一N位数,其各位数字的N次方之和等于该数本身。
例如,对于三位数来说,如果一个三位数各个数字的立方和等于该数本身,则该数为水仙花数。一个常见的例子是153:
$ 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153 $
计算水仙花数的步骤如下:
- 确定位数:确定你要计算的水仙花数是几位数。例如,三位数。
- 分解数字:将这个数的每一位数字提取出来。
- 计算次方和:将每一位数字的N次方相加。
- 比较结果:将计算的和与原数比较,如果相等,则为水仙花数。
用Python代码示例来计算范围内的水仙花数:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
def is_narcissistic_number(num): # 将数字转换为字符串以方便逐位处理 num_str = str(num) # 获取数字的位数 num_len = len(num_str) # 计算每一位的次方和 sum_of_powers = sum(int(digit) ** num_len for digit in num_str) # 判断次方和是否等于原数 return sum_of_powers == num # 输出所有三位数的水仙花数 narcissistic_numbers = [num for num in range(100, 1000) if is_narcissistic_number(num)] print(narcissistic_numbers) |
运行上面的代码将输出所有的三位数水仙花数。你可以根据需要调整范围来查找其他位数的水仙花数。
\(\)