728x90
문제 설명
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
제한 사항
- n은 0 이상 3000이하인 정수입니다.
입출력 예
12 | 28 |
5 | 6 |
입출력 예 설명
입출력 예 #1
12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다.
입출력 예 #2
5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다.
나의 풀이
def solution(n):
tmp = []
for i in range(1,n+1):
if n % i == 0: # 나머지가 0이면 약수!
tmp.append(i)
return sum(tmp)
이번 문제는 약수를 구하기 위해 약수에 대해 먼저 파악하였다.
약수는 나머지가 0인 특징이 있어 for 문을 이용하여 하나씩 수를 꺼내서 나눠서 나머지가 0인 수를 tmp 변수에 담았다.
그 후 sum(tmp)를 통해서 값을 반환하면 답이 나온다.
728x90
'알고리즘 > 프로그래머스 - 파이썬' 카테고리의 다른 글
프로그래머스) 같은 숫자는 싫어 문제 (파이썬) (2) | 2022.08.08 |
---|---|
프로그래머스) 문자열 내 p와 y의 개수 문제 (파이썬) (0) | 2022.08.07 |
프로그래머스) 서울에서 김서방 찾기 문제 (파이썬) (0) | 2022.08.07 |
프로그래머스) 수박수박수박수박수박수? 문제 (파이썬) (0) | 2022.08.07 |
프로그래머스) 두 정수 사이의 합 문제 (파이썬) (0) | 2022.08.07 |
댓글