코딩테스트/프로그래머스

[프로그래머스] 약수의 합

rlatotquf45 2024. 12. 23. 15:42
728x90
반응형

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/12928#qna

문제 요약

정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.

푼 방법

정수 i를 i*i <= n일 때 까지 증가( i <= sqrt(n))시키며 n를 i로 나눈 나머지가 0인 경우 이는 약수,

이때 약수가 제곱수가 되는 경우, n%i와 n/i이 두번 더해지기 때문에, 제곱수인경우 그 수는 한번만 더해줌 (8번 조건문)

 

정답 코드

def solution(n):
    answer = 0
    i = 1
    while i*i <= n:
        if n%i == 0:
            answer += i
            if n/i != i:
                answer += n/i
        i+=1
    return answer

배웠던 부분

프로그래머스 Lv1부터 쭉 풀어보겠습니다

728x90
반응형