완전수

10000 미만의 수 T개에 대해 각각 진약수의 합을 구해 완전수, 부족수, 과잉수로 분류한다.

쉬움2수학완전 탐색정수론면접 대비아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

자연수 NN의 약수 중 NN 자신을 뺀 것을 진약수라고 한다. 진약수의 합이 NN과 같으면 NN을 완전수라고 한다. 예를 들어 6의 약수는 1, 2, 3, 6이고 진약수의 합 1+2+31+2+3이 6이므로 6은 완전수다. 진약수의 합이 NN보다 작으면 부족수, NN보다 크면 과잉수라고 한다.

자연수가 여러 개 주어질 때 각 수가 완전수, 부족수, 과잉수 중 무엇인지 판정하는 프로그램을 작성하시오.

입력

첫째 줄에 자연수의 개수 TT가 주어진다. TT는 1000보다 작은 자연수다.

둘째 줄에 판정할 자연수 NNTT개, 공백을 사이에 두고 주어진다. (1N<100001 \le N < 10000)

출력

TT개 줄에 걸쳐 주어진 순서대로 판정 결과를 출력한다. 완전수면 Perfect, 부족수면 Deficient, 과잉수면 Abundant를 출력한다.

힌트

28의 약수는 1, 2, 4, 7, 14, 28이고 1+2+4+7+14=281+2+4+7+14 = 28이므로 28은 완전수다.

21의 약수는 1, 3, 7, 21이고 1+3+7=11<211+3+7 = 11 < 21이므로 21은 부족수다.

36의 약수는 1, 2, 3, 4, 6, 9, 12, 18, 36이고 1+2+3+4+6+9+12+18=55>361+2+3+4+6+9+12+18 = 55 > 36이므로 36은 과잉수다.