def decide(num):
div = set()
for i in range(1, num):
if num % i == 0:
div.add(i)
sum_ = 0
str_sum = ""
for i in div:
sum_ += i
if sum_ == num:
for i in range(len(div) - 1):
str_sum += str(div.pop()) + " + "
str_sum += str(div.pop())
print(str(num) + " = " + str_sum)
else :
print(str(num) + " is NOT perfect.")
'''
#혹시나 한번에 입력받아서 한번에 출력하는건지 싶어서도 해본 코드
#이걸로 제출해도 오답이 뜨네요...ㅠ
todef = []
while True:
num = int(input())
if num < 2:
break
todef.append(num)
for i in todef:
decide(i)
'''
while True:
num = int(input())
if num == -1:
break
decide(num)
ZGVmIGRlY2lkZShudW0pOiAgCiAgICBkaXYgPSBzZXQoKQogICAgZm9yIGkgaW4gcmFuZ2UoMSwgbnVtKToKICAgICAgICBpZiBudW0gJSBpID09IDA6CiAgICAgICAgICAgIGRpdi5hZGQoaSkKCiAgICBzdW1fID0gMAogICAgc3RyX3N1bSA9ICIiCgogICAgZm9yIGkgaW4gZGl2OgogICAgICAgIHN1bV8gKz0gaQogICAgaWYgc3VtXyA9PSBudW06CiAgICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuKGRpdikgLSAxKToKICAgICAgICAgICAgc3RyX3N1bSArPSBzdHIoZGl2LnBvcCgpKSArICIgKyAiCiAgICAgICAgc3RyX3N1bSArPSBzdHIoZGl2LnBvcCgpKQogICAgICAgIHByaW50KHN0cihudW0pICsgIiA9ICIgKyBzdHJfc3VtKQogICAgZWxzZSA6CiAgICAgICAgcHJpbnQoc3RyKG51bSkgKyAiIGlzIE5PVCBwZXJmZWN0LiIpCgonJycKI+2YueyLnOuCmCDtlZzrsojsl5Ag7J6F66Cl67Cb7JWE7IScIO2VnOuyiOyXkCDstpzroKXtlZjripTqsbTsp4Ag7Iu27Ja07ISc64+EIO2VtOuzuCDsvZTrk5wKI+ydtOqxuOuhnCDsoJzstpztlbTrj4Qg7Jik64u17J20IOucqOuEpOyalC4uLuOFoAp0b2RlZiA9IFtdCndoaWxlIFRydWU6CiAgICBudW0gPSBpbnQoaW5wdXQoKSkKICAgIGlmIG51bSA8IDI6CiAgICAgICAgYnJlYWsKICAgIHRvZGVmLmFwcGVuZChudW0pCgpmb3IgaSBpbiB0b2RlZjoKICAgIGRlY2lkZShpKQonJycKCndoaWxlIFRydWU6CiAgICBudW0gPSBpbnQoaW5wdXQoKSkKICAgIGlmIG51bSA9PSAtMToKICAgICAgICBicmVhawogICAgZGVjaWRlKG51bSk=