준이에용 2023. 3. 23. 01:35

스즈메 재밌다

 

문제 번호: 9506

사용한 프로그래밍 언어: Python

간단한 설명: 어떤 숫자 N을 입력받아서 약수가 되는 i를 배열에 넣어준다. 그리고 완전수면 입력받은 수와 그 약수들을 배열의 수만큼 출력해주고, 아니면 완전수가 아니라고 출력한다. -1이 입력되면 반복문을 종료한다. 

while True:
  n = int(input())  # N
  arr = []

  if n == -1:
    break
  for i in range(1, n):
    if n % i == 0:
      arr.append(i)
  if sum(arr) == n:
    print(n, "=", end=" ")
    print(*arr, sep=" + ")
  else:
    print(n, "is NOT perfect.")