본문 바로가기
코딩테스트 문제풀이(Python)

[프로그래머스] 약수의 합 문제풀이 (파이썬)

by chanfficial 2022. 8. 29.

12928. 약수의 합

 

 

정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.

 

 

제한 사항

  • n은 0 이상 3000이하인 정수입니다.

 

 

입출력 예

n return
12 28
5 6

 

 

 

 

문제풀이

def solution(n):
    i = 1
    answer = []
    while i <= n:
        if n % i == 0:
            answer.append(i)
        i += 1
    answer = sum(answer)
    return answer

- 약수를 모두 구하기 위해 i(인수) 가 n 보다 작거나 같을 때 까지 반복하는 while문을 사용하여, i 가 n 의 약수이면 answer 리스트에 추가한 다음 i 를 1씩 증가시켜서 반복하게 했다.

반복문이 끝난 다음 n 의 약수가 모두 들어있는 answer 리스트에서 sum() 을 사용하여 모든 약수들의 합을 구해 리턴하게 했다.