본문 바로가기
나는 이렇게 학습한다/Algorithm & SQL

약수의 합

by daco2020 2022. 1. 26.

문제 설명

정수 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