본문 바로가기
코딩 테스트/Python_백준

[백준/Python] 9506번 약수들의 합 문제

by 모두의 케빈 2023. 4. 13.

■ 9506번 약수들의 합 문제

 

출처: 백준 9506번 약수들의 합 문제

 

■ 코드 풀이

 

크게 어렵지 않은 코드입니다. -1이 입력되기 전까지는 계속 while문을 반복하며, 숫자를 입력받습니다. 그리고 자기 자신을 제외한 약수들을 num_list에 저장합니다. 그리고 약수의 합을 total 변수에 저장합니다. 반복문이 끝나면, 문제에서 제시한 출력 양식에 맞춰 출력하면 됩니다.

while True:
    num_list = []
    total = 0
    n = int(input())
    
    if n == -1:
        break
    
    for i in range(1, n//2+1):
        if n % i == 0:
            num_list.append(i)
            total += i
            
    if total == n:
        temp = ' + '.join(str(i) for i in num_list)
        print(n, '=', temp)
    else:
        print('{} is NOT perfect.'.format(n))

 

혹시 for문의 range 상한 값에 n//2+1이 왜 들어가는지 이해가 안 가신다면 아래 링크를 참고해 주세요.

 

[백준/Python] 2501번 약수 구하기 문제

 

[백준/Python] 2501번 약수 구하기 문제

■ 2501번 약수 구하기 문제 ■ 코드 풀이 두 가지 풀이법을 공유드리겠습니다. 처음 제가 푼 코드와 업그레이드한 코드입니다. 먼저 아래는 기본적으로 누구나 생각할 수 있는 코드입니다. 아래

kevinitcoding.tistory.com

 

댓글