import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while(true)
{
int num = in.nextInt();
int total = 0;
int[] numbers = new int[num+1];
if (num == -1)
{
break;
}
for (int i = 1 ; i < num; i++)
{
if (num % i ==0)
{
numbers[i] = i;
total+=numbers[i];
}
}
if (total == num) {
System.out.print(num+" = ");
boolean first = true;
for (int i = 1; i < num; i++) {
if(numbers[i] != 0) {
if (!first) {
System.out.print(" + ");
}
System.out.print(numbers[i]);
first = false;
}
}
System.out.println();
}
else{
System.out.println(num + " is NOT perfect.");
}
}
}
}
맨 처음 내가 풀때 나는 조건식을 엄청 많이 사용하였다. boolean변수를 사용할 생각조차 하지 못하였다. 그래서 결국 값은 나오지 않아 지피티한테 자문을 구하였더니 boolean변수를 이용하라는 것이었다. 또한 if(numbers[i] !=0)이라는 기초적인 조건도 생각 못한 내가 바보같았다. boolean이 문제풀 때 생각보다 많이 사용되어서 문제 풀때 불리안을 어떻게 생각해야 하는지를 이번 문제를 통해서 감을 찾은 것 같다.