연방 승무원이 좋아하는 수

아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

리겔 7로 향하던 중 기관장 조디와 데이터가 서로 좋아하는 수를 이야기했다. 조디는 나르시시스트 수를 좋아한다고 말했다. 각 자리 숫자를 그 수의 자릿수만큼 거듭제곱해서 모두 더한 값이 원래 수와 같은 수다.

데이터는 나르시시스트 수도 흥미롭지만 자기가 좋아하는 완전수만 못하다고 답했다. 조디가 완전수를 몰랐기 때문에 데이터가 설명을 덧붙였다. 어떤 양의 정수가 자기 자신보다 작은 양의 약수의 합과 같으면 그 수를 완전수라고 한다. 6 = 1 + 2 + 3이므로 6은 완전수다.

조디는 완전수를 판정하는 방법을 궁리했지만 데이터만큼 빠르게 계산하지 못한다. 조디 대신 판정 프로그램을 작성하자.

입력

입력은 한 줄에 수 하나씩 주어진다. 각 줄에는 2<n<1000002 < n < 100000인 양의 정수 nn이 있다. -1만 적힌 줄은 입력의 끝을 뜻하며 처리하지 않는다.

출력

nn이 완전수인지 판정한다. 완전수이면 그 수, 등호, 자기 자신보다 작은 양의 약수를 오름차순으로 나열해 n = d1 + d2 + ... + dk 형태로 출력한다. 완전수가 아니면 <NUM> is NOT perfect.를 출력하고, <NUM> 자리에는 그 수를 쓴다. 출력의 모든 단어, 기호, 숫자 사이는 공백 하나로 구분한다. 완전수가 아닐 때 문장 끝에 붙는 마침표만 예외다.