当前位置:首页>python>Python赋能数学学习6:探秘完美数,为什么 6、28、496 如此特别

Python赋能数学学习6:探秘完美数,为什么 6、28、496 如此特别

  • 2026-10-11 05:46:08
Python赋能数学学习6:探秘完美数,为什么 6、28、496 如此特别

完美数:一个数为什么会“恰好等于自己的真因子之和”

一、故事内容

在古希腊,数学家们非常喜欢研究“数字的性格”。

其中有一类数被称为 完美数(Perfect Number)。

一个正整数,如果它的所有真因子(不包含它自己)之和,刚好等于它本身,那么它就是完美数。

例如:

  • 6 的真因子是 1、2、3,且 
  • 28 的真因子是 1、2、4、7、14,且 

所以 6 和 28 都是完美数。

1. 为什么要研究完美数

早期研究完美数的触发点,来自人们对“和谐、平衡、对称”这类思想的追求。数学家希望找到一种“恰到好处”的数:

  • 不是“因子和太小”的数(这类叫亏数)
  • 也不是“因子和太大”的数(这类叫盈数)
  • 而是“刚好相等”的数(完美数)

这种“刚好等于自己”的关系,非常吸引古代数学家。

2. 完美数的规则是什么

规则非常明确: 设正整数  的真因子之和为 (不包括  本身)。

  • 若 ,则  是完美数。
  • 若 $S(n)<n$,则 $n$="" 是亏数。<="" section="">
  • 若 ,则  是盈数。

二、对应的数学知识

1. 真因子(Proper Divisor)

如果  能整除 ,且 ,那么  是  的一个真因子。

例如 28 的真因子是:1、2、4、7、14。

2. 如何判断一个数是不是完美数

步骤:

  1. 找出这个数的所有真因子
  2. 把它们加起来
  3. 判断和是否等于原数

例子:

  • 对 12:真因子 1、2、3、4、6,和为 16,所以 12 不是完美数(它是盈数)
  • 对 15:真因子 1、3、5,和为 9,所以 15 不是完美数(它是亏数)

三、数学建模

问题分析

  1. 输入:一个正整数上限 n
  2. 输出:1 到 n 之间所有完美数

模型步骤

  1. 对每个候选数 x,寻找所有真因子
  2. 把这些真因子累加成 factor_sum
  3. 若 factor_sum == x,则输出 x

四、Python 代码实现

下面代码使用初学者友好的写法,逐个判断并打印完美数:

print("# 完美数查找")n = int(input("请输入查找上限:"))for x in range(2, n + 1):    factor_sum = 0# 枚举真因子:1 到 x-1for d in range(1, x):if x % d == 0:            factor_sum += dif factor_sum == x:        print(f"{x} 是完美数")

五、示例输出

当输入 1000 时,可能输出:

# 完美数查找6 是完美数28 是完美数496 是完美数

六、总结

  1. 完美数的核心规则是:真因子之和等于自身。
  2. 研究完美数的主要触发点,是古代数学对“和谐与平衡”的追求。

最新文章

随机文章