#include <stdio.h>
int main()
{
while(1)
{
int n=0;
int arr[100000],sum=0,arrcnt=0;
scanf("%d",&n);
if(n==-1) return 0;
for(int i=2;i<=n;i++)
{
if(n%i==0)
{
arr[arrcnt] = n/i;
arrcnt++;
sum+=n/i;
}
}
if(sum==n)
{
printf("%d = ",n);
for(int i=0;i<arrcnt;i++)
{
if(arr[arrcnt - i-1]==NULL)
{
break;
}
printf("%d",arr[arrcnt - i-1]);
if(arr[arrcnt - i-2]!=NULL)
{
printf(" + ");
}
}
}
else
{
printf("%d is NOT perfect.",n);
}
printf("\n");
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CmludCBtYWluKCkKewoJd2hpbGUoMSkKCXsKCQlpbnQgbj0wOwoJCWludCBhcnJbMTAwMDAwXSxzdW09MCxhcnJjbnQ9MDsKCQlzY2FuZigiJWQiLCZuKTsKCQlpZihuPT0tMSkgcmV0dXJuIDA7CgkJZm9yKGludCBpPTI7aTw9bjtpKyspCgkJewoJCQlpZihuJWk9PTApCgkJCXsKCQkJCWFyclthcnJjbnRdID0gbi9pOwoJCQkJYXJyY250Kys7CgkJCQlzdW0rPW4vaTsKCQkJfQoJCX0KCQlpZihzdW09PW4pCgkJewoJCQlwcmludGYoIiVkID0gIixuKTsKCQkJZm9yKGludCBpPTA7aTxhcnJjbnQ7aSsrKQoJCQl7CgkJCQlpZihhcnJbYXJyY250IC0gaS0xXT09TlVMTCkKCQkJCXsKCQkJCQlicmVhazsKCQkJCX0KCQkJCXByaW50ZigiJWQiLGFyclthcnJjbnQgLSBpLTFdKTsKCQkJCWlmKGFyclthcnJjbnQgLSBpLTJdIT1OVUxMKQoJCQkJewoJCQkJCXByaW50ZigiICsgIik7CgkJCQl9CgkJCX0KCQl9CgkJZWxzZQoJCXsKCQkJcHJpbnRmKCIlZCBpcyBOT1QgcGVyZmVjdC4iLG4pOwoJCX0KCQlwcmludGYoIlxuIik7Cgl9CgkKfQ==