반응형
문제주소 :programmers.co.kr/learn/courses/30/lessons/12928
<문제 설명>
더보기
문제 설명
정수 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
반응형
'Programmers' 카테고리의 다른 글
[프로그래머스] 자릿수 더하기 / Python (0) | 2021.01.15 |
---|---|
[프로그래머스] 이상한 문자 만들기 / Python (0) | 2021.01.14 |
[프로그래머스] 시저 암호 / Python (0) | 2021.01.14 |
[프로그래머스] 수박수박수박수박수박수? / Python (0) | 2021.01.13 |
[프로그래머스] 소수 찾기(Level 1) / Python (0) | 2021.01.13 |