문제
어떠한 자연수 N에 대해서 N을 제외한 약수(진약수)의 합이 N이 되는 자연수를 완전수라고 한다. 예를 들어, 6의 약수는 1, 2, 3, 6인데 1+2+3은 6이기 때문에 완전수이다. 또 진약수의 합이 자기 자신보다 작은 경우를 부족수, 진약수의 합이 자기 자신보다 큰 경우를 과잉수라고 한다.
이때, 어떤 수가 주어질 때 이 수가 완전수인지, 부족수인지, 과잉수인지를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 자연수의 개수 T가 주어진다. T은 1000보다 작은 수이다.
둘째 줄에는 공백을 사이에 두고 완전수인지 구해야 되는 자연수 N이 주어진다.(N<10000)
출력
T개 줄에 걸쳐서 각 자연수에 대해서 완전수면 ‘Perfect’, 부족수면 ‘Deficient’, 과잉수면 ‘Abundant’를 출력한다.
예제 입력 | 예제 출력 |
3 28 21 36 |
Perfect Deficient Abundant |
[ JAVA ]
'알고리즘' 카테고리의 다른 글
[ 백준 10814 ] 나이순 정렬 (0) | 2021.03.24 |
---|---|
[ 백준 1181 ] 단어 정렬 (0) | 2021.03.24 |
[ 백준 2960 ] 에라토스테네스의 체 (0) | 2021.03.24 |
[ 백준 1182 ] 부분수열의 합 (2) | 2021.03.23 |
[ 백준 1193 ] 분수찾기 (0) | 2021.03.23 |
댓글