Menu
CoddyTech

Perfect Number

nの真の約数とは、n自身より小さい正の約数です。完全数は、その真の約数の和に等しい数です。例:6 = 1 + 2 + 3。正の整数nが与えられます。nが完全数ならtrueを、そうでなければfalseを返してください。

関数

isPerfect(n: integer) → boolean
ninteger
テストする正の整数
戻り値boolean
n が真の約数の和に等しい場合は真、そうでなければ偽

制約

  • 1 ≤ n ≤ 108

例

入力
n = 28
出力
true
説明
28の真の約数は1、2、4、7、14です。それらを合計すると28になるので、28は完全数です。

lock icon提出時に隠しテスト+16件

challenge icon

発展問題

すべての偶数の完全数は、2^(p-1) × (2^p-1)という形をしており、2^p-1は素数です。各数を個別に調べずに、この公式を使って10^8未満の完全数をすべて列挙できますか?

コードをリセット
def isPerfect(n):
    # ここにコードを書いてください
テストケース

ケース1

ケース2

ケース3

入力

n = 28

期待値

true