나는 이렇게 학습한다/Algorithm & SQL

약수의 합

daco2020 2022. 1. 26. 22:38
반응형

문제 설명

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

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

 

 

제한 사항

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

 

 

해결 방법

1. n의 절반에 해당되는 수 만큼 반복을 돌린다.

2. n과 나누어 떨어지는 수들을 합한다.

3. 마지막으로 n을 합한다.
(n의 절반을 나눠 반복하였으므로 약수 중에 하나인 n을 추가로 더해주어야 함)

 

def solution(n):
    answer = sum([i for i in range(1, n // 2 + 1) if n % i == 0]) + n
    return answer

 

 

 

 

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

 

 

 

 

 

 

 

 

반응형

'나는 이렇게 학습한다 > Algorithm & SQL' 카테고리의 다른 글

수박수박수박수박수박수?  (0) 2022.01.29
시저 암호  (0) 2022.01.27
이상한 문자 만들기  (0) 2022.01.25
선형배열  (0) 2022.01.25
정렬(sort)과 탐색(search)  (0) 2022.01.25