[python] 백준 9506번 약수들의 합

도리·2025년 3월 4일

내 코드

#완전수 판단
b=''
a = 1 #-1 입력받으면 0 
num = []
while (a):
    n = int(input())
    if n == -1 :
        a= 0  
        break
    else:
      for i in range(1,n):
        if n%i == 0 :
            num.append(i)
            num.sort()
      if n != sum(num):
        print(f"{n} is NOT perfect.")
        num=[]
        b=''
      else:
        for j in range(len(num)-1):
            b += str(num[j])
            b += " + "
        b += f'{num[len(num)-1]}'
        print(f"{n} = {b}") 
        num=[]
        b= ''
  • num과 b를 적절히 초기화해줘야 한다.!!

다른 정답 코드

while True:
    n = int(input())
    if n == -1:
        break
    num = []  # 매 케이스마다 초기화
    for i in range(1, n):
        if n % i == 0:
            num.append(i)
    if n != sum(num):
        print(f"{n} is NOT perfect.")
    else:
        # 약수들을 " + "로 연결
        result = " + ".join(str(i) for i in num)
        print(f"{n} = {result}")

난 뭔가 변수나 리스트에 저장을 하고 쓰는걸 좋아하는 것 같다....
이렇게 되면 문제가, num과 b를 초기화하지 않아서 몇번이나 오류가 났었음

profile
인공지능응용학과 졸업예정..

0개의 댓글