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은 완전수입니다.

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