如何找出所有满足各位数字立方和等于自身的三位数?
如何找出所有满足各位数字立方和等于自身的三位数?
这类数其实被称为阿姆斯特朗数(也叫自恋数),针对三位数的场景,我们可以通过「遍历-拆分-计算-验证」的思路来找出所有符合条件的数,下面我用Python来演示具体实现:
实现步骤
- 遍历100到999之间的所有整数(覆盖所有三位数)
- 对每个数拆分出百位、十位、个位数字
- 计算这三个数字的立方和
- 判断立方和是否等于原数,若是则输出该数
代码示例
# 遍历所有三位数 for num in range(100, 1000): # 拆分百位:整数除法取前两位的商 hundreds = num // 100 # 拆分十位:先取前两位再取余 tens = (num // 10) % 10 # 拆分个位:直接取余10 units = num % 10 # 计算各位数字的立方和 cube_sum = hundreds ** 3 + tens ** 3 + units ** 3 # 验证是否符合条件 if cube_sum == num: print(num)
运行结果
运行这段代码后,会输出所有满足条件的三位数:
153、370、371、407
拿题目里的371举例验证:3³ + 7³ + 1³ = 27 + 343 + 1 = 371,完全符合条件。
内容的提问来源于stack exchange,提问作者Naor Vaizman
相关产品推荐
相关产品推荐

