본문 바로가기
알고리즘/프로그래머스 - 파이썬

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

by AI Sonny 2022. 8. 7.
728x90

문제 설명

 

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

 

제한 사항

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

 

입출력 예

 

12 28
5 6

 

입출력 예 설명

 

입출력 예 #1


12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다.

 

입출력 예 #2


5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다.

 

나의 풀이

 

def solution(n):
    tmp = []
    for i in range(1,n+1):
        if n % i == 0:   # 나머지가 0이면 약수!
            tmp.append(i)
    return sum(tmp)

 

이번 문제는 약수를 구하기 위해 약수에 대해 먼저 파악하였다.

 

약수는 나머지가 0인 특징이 있어 for 문을 이용하여 하나씩 수를 꺼내서 나눠서 나머지가 0인 수를 tmp 변수에 담았다.

 

그 후 sum(tmp)를 통해서 값을 반환하면 답이 나온다.

 

 

728x90

댓글