Programmers
[프로그래머스] 약수의 합 / Python
개발하는 사막여우
2021. 1. 14. 09:07
반응형
문제주소 :programmers.co.kr/learn/courses/30/lessons/12928
코딩테스트 연습 - 약수의 합
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 입출력 예 설명 입출력 예 #1 12의 약수
programmers.co.kr
<문제 설명>
더보기
문제 설명
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
제한 사항
- n은 0 이상 3000이하인 정수입니다.
입출력 예
n return12 | 28 |
5 | 6 |
<풀이법>
▒ 한줄 개념: 약수 계산 ▒
반복문을 통해 약수를 얻어낸 뒤 해당 양수의 합을 구하면 됩니다.
여기서 중요한 점은 반복문의 범위 설정입니다.
나눗셈을 하기 때문에 반복문에 0이 들어가면 안되고, 또한 n 자신의 값까지 확인해야 하기 때문에 n+1까지 범위가 지정되어야 합니다.
<코드(Python)>
def solution(n):
divisor = [] # 약수를 저장할 배열
for i in range(1,n+1): # 반복문(1 ~ n+1)
if n % i == 0: # 나누었을 때 나머지가 0이면
divisor.append(i) # 약수등장!
return sum(divisor) # 약수들의 총 합
더 많은 코드 보기(GitHub) : github.com/dwkim-97/CodingTest
반응형