一个数的真因子,是除了它自身以外的正因子。例如,15 的真因子是 1、3、5,其和为 9。比较真因子之和与原数,可以对正整数分类。
任务说明
按照尼科马库斯提出的正整数分类,判断给定数是完全数、过剩数还是亏数。
希腊数学家尼科马库斯根据真因子和,将正整数分为完全数、过剩数、亏数。真因子和是除自身之外所有正因子的和,例如 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。- 质数都是亏数。
实现任务
实现完全数判断,并根据本题提供的 C++ 接口,同时处理过剩数与亏数分类。