sein-choi 님의 블로그
[PYTHON] Lv.1 약수의 합 본문
✅문제

def solution(n):
total = 0
for i in range(1,1+n):
if n % i == 0:
total += i
return total
약수는 정수 n이하의 자연수를 나열하였을 때, 자연수가 n으로 나누어 떨어진다면 정수 n의 약수가 됩니다.
✅다른 풀이: 시간이 단축되는 코드
def solution(n):
total = 0
for i in range(1,n//2+1):
if n % i == 0:
total += i
return total+n
기존 n+1→ n//2+1 로 변경한 이유는 약수는 자기 자신을 제외하고 자신의 절반 이상 값을 가질 수 없습니다
- 12의 약수: 1,2,3,4,6,12
- 6의 약수: 1,2,3,6
이를 적용하면 1~n까지 반복하는 것을 1~n//2까지만 반복하므로 반복 횟수가 절반으로 줄어들게 됩니다.
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
'QUIZ > [PYTHON]' 카테고리의 다른 글
| [PYTHON] Lv.1 나머지가 1이 되는 수 찾기 (0) | 2025.03.05 |
|---|---|
| [PYTHON] Lv.1 자릿수 더하기 (0) | 2025.02.27 |
| [PYTHON] Lv.1 평균 구하기 (0) | 2025.02.17 |
| [프로그래머스 Lv.1 : 파이썬] 핸드폰 번호 가리기 (0) | 2024.09.27 |
| [프로그래머스 Lv.1 : 파이썬] 없는 숫자 더하기 (0) | 2024.09.27 |