NIRVANA

[DAY-3] 프로그래머스 약수의 합 본문

Coding test(Python3)/스터디

[DAY-3] 프로그래머스 약수의 합

녜잉 2024. 5. 20. 18:40

문제 

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

 

제한 사항

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

 

문제 풀이 접근법1

1) for문을 사용하여 1부터 n까지의 수를 n과 나눈다.

2) 만약 나누었을 때의 나머지가 0이면 해당 수를 answer에 더한다

def solution(n):
    
    answer = 0
    
    for i in range(1, n):
        if n % i == 0:
            answer += i
    
    return answer+n

 

 

다른 분들 문제 풀이

def sumDivisor(num):
    return sum([i for i in range(1,num+1) if num%i==0])

# 아래는 테스트로 출력해 보기 위한 코드입니다.
print(sumDivisor(12))

list comprehension 사용 빈도수 좀 늘려봐야겠다