根据 Nicomachus(公元 60 - 120 年)对正整数的分类方法,判断一个数是完全数、过剩数还是亏数。
希腊数学家 Nicomachus 为正整数设计了一套分类方法,根据每个数的真因数和,把它们分别归入完全数、过剩数或亏数这三类,且每个数只属于其中一类。
_真因数和_的定义是:一个数的所有因数之和,但不包括这个数本身。
例如,15 的真因数和是 1 + 3 + 5 = 9。
当一个数等于它的真因数和时,它就是完全数。 例如:
6 是完全数,因为 1 + 2 + 3 = 6
28 是完全数,因为 1 + 2 + 4 + 7 + 14 = 28
当一个数小于它的真因数和时,它就是过剩数。 例如:
12 是过剩数,因为 1 + 2 + 3 + 4 + 6 = 16
24 是过剩数,因为 1 + 2 + 3 + 4 + 6 + 8 + 12 = 36
当一个数大于它的真因数和时,它就是亏数。 例如:
8 是亏数,因为 1 + 2 + 4 = 7
实现一种方法,判断给定的数是否为完全数。 根据你所使用的编程语言,你可能还需要实现判断给定数是过剩数还是亏数的方法。
返回以下整数之一:
| 分类 | 返回值 |
|---|---|
| 非正数 | 0 |
| 亏数 | 1 |
| 完全数 | 2 |
| 过剩数 | 3 |
本练习不需要线性内存。