fork download
  1. def decide(num):
  2. div = set()
  3. for i in range(1, num):
  4. if num % i == 0:
  5. div.add(i)
  6.  
  7. sum_ = 0
  8. str_sum = ""
  9.  
  10. for i in div:
  11. sum_ += i
  12. if sum_ == num:
  13. for i in range(len(div) - 1):
  14. str_sum += str(div.pop()) + " + "
  15. str_sum += str(div.pop())
  16. print(str(num) + " = " + str_sum)
  17. else :
  18. print(str(num) + " is NOT perfect.")
  19.  
  20. '''
  21. #혹시나 한번에 입력받아서 한번에 출력하는건지 싶어서도 해본 코드
  22. #이걸로 제출해도 오답이 뜨네요...ㅠ
  23. todef = []
  24. while True:
  25. num = int(input())
  26. if num < 2:
  27. break
  28. todef.append(num)
  29.  
  30. for i in todef:
  31. decide(i)
  32. '''
  33.  
  34. while True:
  35. num = int(input())
  36. if num == -1:
  37. break
  38. decide(num)
Success #stdin #stdout 0.03s 9968KB
stdin
8128
-1
stdout
8128 = 32 + 1 + 2 + 64 + 4 + 4064 + 8 + 16 + 2032 + 1016 + 508 + 254 + 127