만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

부족수, 완전수, 과잉수

면접 대비

시간 제한1초메모리 제한128 MB

요약
각 정수에 대해 진약수의 합을 구해 부족수, 완전수, 과잉수로 분류한다.
난이도

쉬움10점 중 3점

유형
수학, 정수론, 구현
정답자
아직 제출이 없습니다

문제

여러 개의 양의 정수를 읽어, 각 정수가 부족수(deficient), 완전수(perfect), 과잉수(abundant) 중 무엇인지 판별하는 프로그램을 작성하세요.

양의 정수 nn의 진약수는 11을 포함하되 자기 자신 nn은 제외한 약수를 말합니다. 진약수의 합을 ss라고 할 때:

  • s=ns = n 이면 nn은 완전수입니다.
  • s<ns < n 이면 nn은 부족수입니다.
  • s>ns > n 이면 nn은 과잉수입니다.

예를 들어 66의 진약수는 1,2,31, 2, 3이고 그 합은 66이므로 66은 완전수입니다.

입력

첫 줄에 이어지는 정수의 개수가 주어집니다. 그다음 각 줄에 정수가 하나씩 주어집니다. 입력되는 각 정수는 11보다 크고 3250032500보다 작습니다. 즉 2≤n≤324992 \le n \le 32499 입니다.

출력

각 정수마다 그 값과 분류 결과를 다음 형식에 맞추어 한 줄에 출력합니다.

  • 부족수이면 n is a deficient number.
  • 완전수이면 n is a perfect number.
  • 과잉수이면 n is an abundant number.

여기서 n은 입력된 정수 값입니다. 연속한 두 출력 결과 사이에는 빈 줄을 하나 넣습니다.

예제1

  1. 예제 1

    입력
    3
    4
    6
    12
    
    예상 출력
    4 is a deficient number.
    
    6 is a perfect number.
    
    12 is an abundant number.