파이썬 알고리즘 : 약수의 합

공약수

2023년 12월 21일 알고리즘 문제풀이

문제

약수의 합

난이도

Lv.1

코드

1
2
3
4
5
6
7
8
def solution(n):
    answer = 0
    for i in range(1,int(n**(0.5))+1):
        if not n%i:
            answer += (i+n//i)
            if i == n//i:
                answer -= i    
    return answer

공약수는 대칭이기 때문에 절반만 반복해주었다. 단 제곱수는 똑같은 수가 2번 더해지니 해당 부분만 뺴주었다.