Menu
CoddyTech

Perfect Number

n 的真因数是小于 n 本身的正因数。完全数等于它所有真因数之和:6 = 1 + 2 + 3。给你一个正整数 n。如果 n 是完全数,返回 true,否则返回 false。

函数

isPerfect(n: integer) → boolean
ninteger
要测试的正整数
返回值boolean
如果 n 等于它的真因数之和,则为 true;否则为 false

约束条件

  • 1 ≤ n ≤ 108

示例

输入
n = 28
输出
true
解释
28 的真因数是 1、2、4、7 和 14。它们的和是 28,所以 28 是完全数。
challenge icon

进阶

每个偶完全数都具有 2^(p-1) × (2^p-1) 这种形式,其中 2^p-1 是素数。你能用这个公式列出所有小于 10^8 的完全数,而不必逐个测试吗?

重置代码
def isPerfect(n):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

n = 28

预期输出

true