완전수

완전수

보통

지침

니코마코스(서기 60~120년)가 양의 정수를 분류한 체계에 따라, 어떤 수가 완전수, 과잉수, 부족수인지 판별해요.

그리스 수학자 니코마코스는 양의 정수를 분류하는 체계를 고안했어요. 각 수를 진약수의 합에 따라 완전수, 과잉수, 부족수 중 하나로 구분하는 방식이었죠. _진약수의 합_은 어떤 수의 약수 중에서 자기 자신을 제외한 것들의 합으로 정의해요. 예를 들어, 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

예약된 주소

이 연습 문제에는 선형 메모리가 필요하지 않아요.

GitHub에서 편집 링크가 새 창이나 탭에서 열려요
WebAssembly Exercism

완전수 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 WebAssembly 트랙을 연습 문제 87개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.